组织包 Python - 导入与包一起使用的模块

Organizing package Python - importing modules that are used with the package

我正在编写代码并试图组织它,但是我遇到了一些麻烦。

我真的很想有这样的结构:

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

我只需要这样做import package

所以我的 __init__.py 包中包含:

from package.main import mainfunction import package.utils.

并且 utils 文件夹中的 __init.py 包含:

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

到目前为止一切顺利,导入后我可以 运行:

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

但是,我卡住的地方是我的主要功能使用其他模块,如 OpenCV 和 utils 文件夹中的功能。我尝试在 utils.__init_ 文件中添加 import cv2。但是在尝试导入包之后,init 文件似乎没有导入 cv2。另外,如果我的 mainfunction() 包含 package.utils.function1() 它似乎无法识别它。

我要一个奇怪的结构吗?或者可能出了什么问题?

ps。我可以绕过 /utils 文件夹,只需将 def function() 放在我的 Main.py 函数中。但我更喜欢把它们放在外面,这应该是可能的吧?

对于遇到此问题的任何人,这就是我现在如何让它工作的:

/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

导入所有内容

确保在 main.py 中使用 function1 和 function2 就像 package.utils.function1()