编程语言
首页 > 编程语言> > python-项目内的相对导入导致“ SystemError:父模块”未加载,无法执行相对导入”

python-项目内的相对导入导致“ SystemError:父模块”未加载,无法执行相对导入”

作者:互联网

我正在一个具有以下结构的项目:

project
├── config.py
└── modules
    └── a.py

根据PEP 328,相对进口是可能的.
但是,当我在与a.py相同的目录中启动Python(在shell中)并执行以下命令时:

从..config导入*

从…项目导入*

我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
SystemError: Parent module '' not loaded, cannot perform relative import

我了解不建议您使用import *,它仅用于测试(尝试导入配置).

解决方法:

相对导入只能在模块本身已导入的地方进行.在交互式会话中运行该命令没有父模块.另外,当前目录是隐式搜索的(因此被视为程序包),因此从该目录中的交互式解释器导入a将没有父模块.

因此,要进行测试,请将PYTHONPATH设置为项目的根目录(作为临时措施),然后从模块执行操作,从另一个目录(例如主目录)导入a.然后,模块才可以从..config import *中执行*.

标签:python-3-x,python-import,relative-import,python
来源: https://codeday.me/bug/20191026/1939785.html