我正在尝试导入已开发的Python文件。最初,当所有文件都位于同一目录中时,它们没有任何问题。但是,我决定将项目拆分到专用目录中。之后我就无法再导入文件了。
我的文件结构类似于以下内容:
dirFoo\
mainFoo1.py
dirFoo\
mainFoo2.py
dirFooCommon\
commonFoo.py
commonFoo2.py
最初,我试图更改 mainFoo1.py 的导入路径并执行以下操作:
从dirFooCommon导入commonFoo
。然而,这种方法给了我以下错误:
ModuleNotFoundError:没有名为“common”的模块。
除此之外,我尝试使用 imp.load_source
,它似乎有效。不幸的是,这会产生额外的问题。例如,如果某些 commonFoo.py 库必须包含其他库怎么办?在这种情况下,它们每个人都需要使用绝对项目路径,当我尝试在任何其他地方使用公共(public)库时,这将是一个问题。
您知道我应该做什么才能将我的公共(public)库包含到我的主要项目中吗?
最佳答案
您可以使用此文件夹结构来正确调用每个包和模块。
dirFoo\ <=== This is a package know
__init__.py
mainFoo1.py
dirFoo2\ <==== Change the name or you will have namespace issue
__init__.py
mainFoo2.py
dirFooCommon\ <=== This is a package know
__init__.py
commonFoo.py
commonFoo2.py
因此,在mainFoo1.py
中,您可以像这样调用commonFoo.py
import sys
sys.path.append("/path/to/dirFooCommon")
from dirFooCommon import commonFoo
要替换 sys.path.append
,您还可以在 PYTHONPATH
中添加该文件夹。
关于python - 从外部目录导入Python库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58647569/