2012-06-01 27 views
1

將該行放入.bashrc(Mac上的.profile)中,工作目錄位於路徑中。離開它,它不是。

export PYTHONPATH=$PYTHONPATH 

我注意到,與線彈在他們的ENV輸出PYTHONPATH =行,那些沒有不,或許這問題。如果PYTHONPATH有一個有效的目錄但是以':'開頭,Python也會添加當前的工作目錄。 (只需將PYTHONPATH設置爲某個有效的目錄即可打破工作目錄包含。)

這是爲什麼? 確保當前工作目錄在sys.path上的最佳做法是什麼?

回答

1

按照該文檔,(這應該清楚你的疑惑)

的PYTHONPATH是ENV。 VARIABLE增加了模塊文件的默認搜索路徑 。格式與shell的PATH相同: 由os.pathsep分隔的一個或多個目錄路徑名(例如Unix上的冒號 或Windows上的分號)。不存在的目錄是 靜靜地忽略。

除了正常的目錄,個人PYTHONPATH條目可以 指含有純Python模塊(在源或 編譯形式)zipfiles。擴展模塊不能從zip文件導入。

默認搜索路徑是依賴於安裝的,但通常 以前綴/ lib/pythonversion開頭(請參閱上面的PYTHONHOME)。總是附加到PYTHONPATH上的是 。

如上面在接口選項下所述,將在PYTHONPATH的前面搜索路徑 中插入一個附加目錄。搜索 路徑可以在Python程序中作爲變量 sys.path進行操作。

2

如果你想確保它,然後明確添加.到PYTHONPATH:

export PYTHONPATH=.:$OTHER_DIRS:$PYTHONPATH 

如果你也想在你的sys.path當前工作目錄用PYTHONPATH設置爲別的東西,然後你可以嘗試通過將類似的東西來設置它在你的sitecustomize.py or usercustomize.py

sys.path.append(os.getcwd()) 

附加說明:

自推出per user site-packages,最好把你的用戶包有(你可以用site.USER_SITE得到的文件夾名稱)。點子也可以很容易地使用--user選項安裝軟件包thera,所以我發現至少對我來說很少有必要與PYTHONPATH混亂。

相關問題