我正在嘗試使用python,主要是排除其他人的代碼故障。我試圖讓程序運行,「path\folderA\program.py
」。從另一個文件夾導入失敗的Python導入
我從path\folderA
運行的程序,我得到一個錯誤:
ImportError: No module named fff.ggg.ppp
program.py包含導入:
from fff.ggg.ppp import mmm
在文件夾 「路徑\ FolderB中」有: 「path\folderB\fff\__init__.py
」 「path\folderB\fff\ggg
」
文件夾ggg
還包含__init__.py
,以及節目ppp.py
從閱讀其他職位,如Python error "ImportError: No module named"據我所知,具有__init__.py
使一個文件夾中的「包」,這使得進口成爲可能 - 但它不」我工作,因爲我得到一個錯誤。
這一直在爲這些項目工作的其他人工作,所以我的設置有問題。
我讀了一些關於必須在sys.path中的目錄。這是否意味着我必須將它們添加到環境變量路徑?這意味着要將大量的目錄添加到PATH中,所以它不能。
所以我還發現了以下內容:
import sys
sys.path.append(<path to FolderB>)
但是,這意味着改變的代碼(這還沒有其他人是必要的)和硬編碼到它是我的本地機器上的一個路徑 - 這我不應該,對吧?
我無法想象它 - 顯然我不應該更改代碼並將物理路徑硬編碼到導入模塊 - 那麼folderA的程序如何知道要在folderB中查找導入?
__init__.py
的魔法效果如何?
Python在'PYTHONPATH'環境變量中查找,而不是'PATH' – mgilson 2012-07-13 19:01:43