Организация пакета Python - импорт модулей, которые используются с пакетом - PullRequest
0 голосов
/ 05 марта 2019

Я пишу код и пытаюсь организовать это, однако у меня возникают некоторые проблемы.

Я действительно хотел бы иметь такую ​​структуру:

/package
    /utils
      __init__.py
      func1.py
      func2.py
 __init__.py
 Main.py

ТакаяМне просто нужно сделать import package

Так что мой __init__.py в пакете содержит:

from package.main import mainfunction import package.utils.

, а __init.py в папке utils содержит:

from package.utils.func1 import function1 from package.utils.func2 import function2

Пока все хорошо, импорт дает мне возможность работать:

package.mainfunction(), package.utils.function1() и package.utils.function2()

Однако я застрял в том, что моя основная функция использует другие модули, такие как OpenCV и функции, которые находятся в папке utils.Я попытался добавить import cv2 в файл utils .__ init_.Но после попытки импортировать пакет, кажется, что файл инициализации не импортирует cv2.Кроме того, если мой mainfunction () содержит package.utils.function1 (), он, похоже, не распознает его.

Собираюсь ли я на странную структуру?Или что может быть не так?

пс.Я могу работать с папкой / utils, просто поместив def function() внутри моей функции в Main.py.Но я предпочитаю иметь их вне этого, и это должно быть возможно, верно?

1 Ответ

0 голосов
/ 06 марта 2019

Для тех, у кого есть проблемы с этим, вот как я заставил его работать сейчас:

/package
     /utils
         __init__.py    -->  from package.utils.func1 import function1
                             from package.utils.func2 import function2
         func1.py
         func2.py

   __init__.py          -->  from package.main import mainscript

   main.py              -->  import package.utils
                             import cv2

Теперь он импортирует все с использованием import package

Убедитесь, что использование function1 и function2 в main.py похоже на package.utils.function1()

...