首页 > 解决方案 > 从外部目录导入 python 库

问题描述

我正在尝试导入已开发的 python 文件。最初,当所有文件都在同一个目录中时,我对它们没有任何问题。但是,我决定将项目拆分到专用目录。之后,我无法再导入文件。

我的文件结构类似于以下内容:

dirFoo\
    mainFoo1.py
dirFoo\
    mainFoo2.py
dirFooCommon\
    commonFoo.py
    commonFoo2.py

最初,我试图更改 mainFoo1.py 的导入路径并执行: from dirFooCommon import commonFoo。但是,这种方法给了我以下错误:ModuleNotFoundError: No module named 'common'。

除此之外,我尝试使用imp.load_source似乎可行的方法。不幸的是,这会产生额外的问题。例如,如果某些 commonFoo.py 库必须包含其他库怎么办?在这种情况下,他们每个人都需要使用绝对项目路径,当我尝试在任何其他地方使用公共库时,这将是一个问题。

你知道我应该怎么做才能将我的公共库包含到我的主要项目中吗?

标签: pythonclassimport

解决方案


您可以使用此文件夹结构,以便正确调用每个包和模块。

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.


推荐阅读