2014-05-11 76 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 ...等。

該方法在「框外」工作,無需重新定義任何環境變量。