2014-05-11 65 views
0

我有以下文件结构: enter image description here如何从相对路径导入python模块?

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

我知道我不能只写import listener,因为它不在相同的路径。 有什么简单的方法可以让导入工作,而无需将路径添加到PYTHONPATH env变量中? 有没有办法让它在任何“开箱即用”的机器上工作,而不需要添加路径到PYTHONPATH或任何这样的解决方案?最好有一些像C++中的相对路径?

回答

0

可能重复:Importing from a relative path in Python

总之,你需要在main.py编程的方式定义PYTHONPATH,是这样的:

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

这隐含增加了当前目录PYTHONPATH。其余部分很简单

在每个目录中创建__init__.py文件。之后,每个模块可以导入为from Listener import ...from Misc import ...等。

该方法在“框外”工作,无需重新定义任何环境变量。