2010-09-15 139 views
10

我已經在python中編寫了一個庫,我希望它位於文件系統上的一個公共位置。將文件夾永久添加到Python的路徑

從我的劇本,我只想做:

>>> import mylib 

現在我明白了,爲了做到這一點,我可以此:

>>> import sys 
>>> sys.path.append(r'C:\MyFolder\MySubFolder') 
>>> import mylib 

但我不每次都想要這樣做。

問題是:如何永久添加一個文件夾到python的sys.path?我會想象它會是一個環境變量,但我找不到它。

這似乎應該很容易,但我不知道如何去做。

回答

10

PYTHONPATH環境變量會做到這一點。

+0

完美。這就是我一直在尋找的。 – riwalk 2010-09-15 22:19:58

+0

它適用於Linux嗎?我將「PYTHONPATH =〜/ pythons/ 」添加到我的.zshrc(echo $ PYTHONPATH也會返回它)。然後我打印sys.path,它不在那裏。 :/ – xliiv 2012-10-28 09:14:23

+1

好吧,它在linux中工作。我沒有在我的.zshrc中包含命令'export'。 這很奇怪,因爲我改變了$ PATH,並且不需要「導出」它。任何想法? – xliiv 2012-10-28 09:32:13

3

另一種可能性是改變你的sitecustomize.pysys.path,即加載在Python啓動時間的腳本。 (它可以隨時隨地把你現有的路徑上,並且可以做任何你喜歡的設置任務;我用它來建立與readline的標籤完成了。)

site模塊提供了需要增加sys.path的護理方法沒有重複與.pth文件:

import site 
site.addsitedir(r'C:\MyFolder\MySubFolder') 
+0

如果添加一個文件到當前路徑是一個選項,爲什麼我甚至會打擾嘗試改變路徑呢?更糟糕的是,有什麼可能讓我想把這一行添加到我寫的每一個Python腳本中?對不起蕾...不是很優雅。 – riwalk 2010-09-21 19:28:13

+0

@ Stargazer712:呃...''sitecustomize.py'是由Python自動運行的。您不必爲每個Python腳本添加一行。這就是整個問題。 – bobince 2010-09-21 19:39:01

+0

也許是因爲一個不言而喻的要求,這個庫使用典型的安裝程序安裝,並且修改環境變量比編輯文件要容易得多(而且更像事務處理)。 – riwalk 2010-09-21 19:41:21

1

我不知道它是多麼一般,但我有一個「usercustomize」文件躺在周圍開始我的shell時被讀取。也許這只是因爲我是一個新手誰是「環境變量」聽起來很可怕...無論如何,這就是我如何永久修改我的系統路徑

但正如說,我不知道它是多麼普遍。我有python 2.7.3,在windows 7上用python(x,y)安裝。並且此文件是在

C:>用戶>我> APPDATA>漫遊>的Python> Python27> sitepackages>(小心,應用程序數據是隱藏的文件夾)

和文件,作爲所述,是「usercustomize.py 「該文件中沒有特別之處。就我而言,只是我的3條進口路徑:

import sys 
sys.path.append('C:\\Users\\blablabla\\LPlot') 
sys.path.append('C:\\Users\\bliblibli\\MTSim') 
sys.path.append('C:\\Users\\blobloblo\\XP') 

希望它有助於太...如果沒有,別打我,我是100%福利局。或者讓我們說99.99%

+0

嗯,其實它不是簡單的「讀」,當我啓動我的控制檯,因爲SYS實際上還沒有導入,但當我啓動它......無論如何,我的3個文件夾永久在我的SYS.path ...所以不知何故它的工作... – 2013-07-19 03:31:51

+0

歡迎來到StackOverflow!你的幫助意願值得稱道,但是當你不確定他們是否正確時,你不應該回答問題。如果你必須用「我不知道它有多普遍」來回答你的答案,這表示你還沒有足夠的經驗來回答這個問題。而且,這個問題在三年前被問及(並得到回答)。增加另一個答案是不可能幫助最初的提問者,他現在已經轉移到其他主題。 :-) – rmunn 2013-07-19 03:39:25

+0

對不起......但實際上我一直在尋找一個答案,就像我放了一天的答案。因爲我知道這個文件必須在某個地方存在,直到我再次找到它(過去我已經使用它,再也找不到了)。所以我想也許這對其他人有用。我不想爲它開闢一個新話題,當這個話題如此相似時...... – 2013-07-19 06:05:21

相關問題