【发布时间】:2019-03-06 20:03:06
【问题描述】:
我正在编写代码并试图组织它,但是我遇到了一些麻烦。
我真的很想有这样的结构:
/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 中我的函数内。但我更喜欢把它们放在外面,这应该是可能的吧?
【问题讨论】:
-
您能分享一下您在两个 init 文件中的导入语句吗?
-
@suicidalteddy,我在描述中添加了它。我可以加载每个函数,但我不能在我的主脚本中使用 package.utils.function1() 或任何其他模块,例如 cv2。这就是我卡住的地方..
-
除非您的 init 文件中有一些功能逻辑,否则您不需要在其中导入任何内容。为什么不在 main.py 中导入 cv2?
-
似乎如果我在 main.py 中添加
from package.utils.func1 import function1它不会导入它(除非我将导入放在def function():结构中)。我可以运行脚本本身而不是函数,但我希望能够导入函数,以便我可以通过给它一些变量在 python 中运行它 (package.mainfunction(x,y,z) -
好的,我让它工作了!无论如何感谢您的帮助!
标签: python import module package init