【发布时间】:2020-02-27 01:30:10
【问题描述】:
我正在尝试导入已开发的 python 文件。最初,当所有文件都在同一个目录中时,我对它们没有任何问题。但是,我决定将项目拆分到专用目录。之后,我无法再导入文件。
我的文件结构类似如下:
dirFoo\
mainFoo1.py
dirFoo\
mainFoo2.py
dirFooCommon\
commonFoo.py
commonFoo2.py
最初,我试图更改 mainFoo1.py 的导入路径并执行以下操作:
来自dirFooCommon import commonFoo。但是,这种方法给了我以下错误:
ModuleNotFoundError: 没有名为“common”的模块。
除此之外,我尝试使用imp.load_source,这似乎有效。不幸的是,这会产生额外的问题。例如,如果某些 commonFoo.py 库必须包含其他库怎么办?在这种情况下,他们每个人都需要使用绝对项目路径,当我尝试在任何其他地方使用公共库时,这将是一个问题。
您知道我应该怎么做才能将我的公共库包含到我的主要项目中吗?
【问题讨论】:
-
查看packages。
-
考虑使用 __init__.py 文件将 Python 文件转换为模块,将目录转换为包。 stackoverflow.com/a/4116384/6014095
-
@Kronosfear 我听说在 python > 3.3 中你不再需要执行 init.py 了。另外,我试过了,但出现以下错误: ModuleNotFoundError: No module named 'dirFooCommon'