我希望這個問題有一個簡單的答案,我簡直可以忽略。如何將腳本的父目錄加載爲模塊,而不將該目錄的父目錄的所有同級添加到我的sys.path?
這裏的設置:
foo/
__init__.py
run.py
run.py的內容:
import foo
運行腳本:
$ python run.py
Traceback (most recent call last):
File "run.py", line 1, in <module>
import foo
ImportError: No module named foo
我可以找出解決的唯一途徑,這是:
內容o ˚Frun.py:
import sys
import os
path = os.path.abspath(__file__)
sys.path.append(os.path.join(os.path.dirname(path), "../"))
import foo
使作品,但問題(如果我沒有記錯的話)是,這增加了foo的父目錄/於sys.path
,因此搜索所有foo的兄弟文件夾/對於Python模塊。
有一種情況我有我真的,真的不想這樣做。我只想將一個目錄作爲模塊添加到我的路徑中,但我無法弄清楚如何添加該模塊而不添加添加該目錄的父目錄,從而添加該父目錄下的每個其他目錄。
我可以在這裏看到什麼嗎?有沒有簡單的方法,我可以添加一個腳本的父文件夾作爲一個模塊?
你可以修改`sys.path`,`import foo`,然後將`sys.path`返回到它之前的狀態嗎? – marcog 2010-12-23 16:17:39
呃,爲什麼`run`意味着要導入自己的父包? – katrielalex 2010-12-23 16:20:42