这是我的目录结构
dir1
dir1f.py
dir2
dir2f.py
__init__.py
dir2f.py有一个我想在dir1f.py中导入的类dir2c所以在dir1f.py中我调用了
from ..dir2.dir2f import dir2c
但我收到此错误
SystemError: Parent module '' not loaded, cannot perform relative import
有什么问题?
答案 0 :(得分:0)
正如T-Heron指出的那样,很难准确地告诉你在这里做了什么,但如果我不得不冒险猜测我会说你正在运行dir1f .py作为脚本(来自python dir1/dir1f.py
目录的ala python dir1f.py
或dir1
),这意味着您不应该使用相对导入。尝试:
from dir2.dir2f import dir2c
更新:如果使用python dir1f.py
执行,有几种方法可以:
python dir1/dir1f.py
;或python dir1f.py
;或另外:阅读PEP8,尤其是导入部分:
"建议使用绝对导入,因为它们通常更具可读性 并且倾向于表现得更好(或者至少提供更好的错误消息) 如果导入系统配置不正确(例如a 包中的目录最终在sys.path上。"
可能相关,有更多细节:Relative imports in Python 3