从Python的父文件夹导入模块

时间:2020-09-22 09:51:19

标签: python python-3.x

我想从另一个目录中的文件(fileA.py)访问模块(fileB.py)的内容。我在fileA.py中尝试了以下代码:

from ..subpackageB import fileB

但是,我得到了错误:

ImportError: attempted relative import with no known parent package

项目的结构与此类似:

toplevel_package/
├── file.py
└── subpackageA
    └── fileA.py
└── subpackageB
    ├── __init__.py
    └── fileB.py

__ init__.py文件为空

3 个答案:

答案 0 :(得分:0)

如果您使用的是PyCharm,则可以将subpackageB标记为源根,然后删除该dotes。

请参见示例here

答案 1 :(得分:-1)

您需要将PYTHONPATH环境变量设置为toplevel_package文件夹路径。 完成后,任何导入语句都将从该位置“开始”。 然后,您可以这样做:

from subpackageB import fileB

另一种方法是将项目根目录添加到sys.path中,例如sys.path.insert(0, 'toplevel_package_path'),但这需要在导入任何模块之前在所有脚本中执行此操作。

答案 2 :(得分:-1)

这可能有点棘手

import os,sys
sys.path.insert(1, os.path.join(sys.path[0], '..')) 
from subpackageB import fileB

阅读此https://docs.python.org/3/library/sys.html#sys.path应该会有所帮助。