如何从相对路径导入Python模块?

0 投票
1 回答
1339 浏览
提问于 2025-04-18 06:12

我有以下的文件结构:

在这里输入图片描述

我想在 main.py 文件中初始化一些对象,这些对象属于 ListenerParserConfigurations 文件夹里的模块。

我知道不能直接写 import listener,因为它不在同一个路径下。有没有简单的方法可以让导入正常工作,而不需要把路径添加到 PYTHONPATH 环境变量里?有没有办法可以在任何机器上“开箱即用”,不需要添加路径到 PYTHONPATH 或者类似的解决方案?最好是像 C++ 那样使用相对路径的方法。

1 个回答

0

可能是重复的问题:在Python中从相对路径导入

简单来说,你需要在main.py里以编程的方式定义PYTHONPATH,像这样:

import sys, os
sys.path.append(os.path.dirname(__file__))

这样做会自动把当前目录添加到PYTHONPATH里。后面的部分就很简单了。

在每个目录里创建一个__init__.py文件。之后,你就可以像这样导入每个模块:from Listener import ...或者from Misc import ...等等。

这种方法可以直接使用,不需要重新定义任何环境变量。

撰写回答