Skip to main content
 首页 » 编程设计

Python 3 模块相对导入错误

2025年05月04日9wayfarer

我在开发一个应用程序时遇到了相对导入的问题,该应用程序包含我实现的两个包,一个用于功能,另一个用于 GUI。

这是实际的应用程序“架构”布局:

 main.py   
 functionality/   
     |__init__.py   
     |functionality.py   
     |config/   
         |__init__.py   
         |conf.py   
 gui/   
     |__init__.py   
     |gui.py 

我在 functionality.py 文件中导入了 config 模块并使用它没有任何问题。但是,当我将功能模块导入到 main.py 文件并运行它时,出现以下错误:

from config import conf 
ImportError: No module named 'config' 

我已经搜索过这个问题并阅读了几本 Python 书籍,但我没有找到任何解决方案。

提前致谢!

请您参考如下方法:

据我了解,您尝试导入 functionality.functionality,这会导入配置,但失败了。

那是因为当您运行 main.py 时,在您的模块搜索路径中没有包含任何类似“config”的模块。检查一下:添加

import sys 
print (sys.path) 

就在您导入功能之前。在你的搜索路径(main.py 所在的位置)和一些默认站点目录中有根。

请参阅此部分:https://docs.python.org/3/tutorial/modules.html#intra-package-references

如那里所写,您必须使用相对导入(带前导点)或写入完整路径(在您的情况下为 functionality.config)