[英]Python 3 module relative import error
在开发包含两个我实现的软件包的应用程序时,我遇到了相对导入的问题,一个用于功能,另一个用于GUI。
这是实际的应用程序“体系结构”布局:
main.py
functionality/
|__init__.py
|functionality.py
|config/
|__init__.py
|conf.py
gui/
|__init__.py
|gui.py
我将config
模块导入functionality.py
文件中,并可以毫无问题地使用它。 但是,当我将功能模块导入main.py
文件并运行它时,出现以下错误:
from config import conf
ImportError: No module named 'config'
我已经搜索了这个问题并阅读了几本Python书,但是没有找到任何解决方案。
先感谢您!
据我了解,您尝试导入functional.functionity,它导入配置,但失败。
那是因为当您运行main.py时,在模块搜索路径中没有包含“ config”之类的模块。 检查一下:添加
import sys
print (sys.path)
在导入功能之前。 搜索路径中有root(main.py所在的位置)和一些默认站点目录。
请参阅本节: https : //docs.python.org/3/tutorial/modules.html#intra-package-references
如此处所写,您必须使用相对导入(带有前导点)或编写完整路径(您的情况下为functionality.config)
我找到了解决方案!
我在function.py文件中的错误导入语句中添加了一个前导点:
from .config import conf
运行main.py文件时,它的效果很好!
但可以说我解决了这个问题,因为现在当我运行functional.py时导入不起作用,解释器会抛出相同的异常
Traceback (most recent call last):
File "/home/youssef/workspace/application/functionality/functionality.py", line 14, in <module>
from .config import conf
SystemError: Parent module '' not loaded, cannot perform relative import
我还必须提到我清空了config包中存在的__init__.py文件,因此它不包含任何import语句。
我感谢大家的努力,如果我找到其他解决方案,我将编辑此答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.