组织包 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()
我正在编写代码并试图组织它,但是我遇到了一些麻烦。
我真的很想有这样的结构:
/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()