2010-05-25 23 views
5

在執行Python腳本之前,如何臨時設置PYTHONPATH環境變量?Windows中的臨時PYTHONPATH

在* nix中,我可以這樣做:

$ PYTHONPATH='.' python scripts/doit.py 

在Windows中,這句法行不通的,當然。但是,什麼是等效的?

回答

8

設置和恢復在Windows的命令行環境變量需要一個不幸的是 「有點痛苦」 的方法...:

SET SAVE=%PYTHONPATH% 
SET PYTHONPATH=. 
python scripts/doit.py 
SET PYTHONPATH=%SAVE% 

你可以使用一些輔助的Python腳本來減少痛苦,例如

import os 
import sys 
import subprocess 

for i, a in enumerate(sys.argv[1:]): 
    if '=' not in a: break 
    name, _, value = a.partition('=') 
    os.environ[name] = value 

sys.exit(subprocess.call(sys.argv[i:])) 

被稱爲,例如,

python withenv.py PYTHONPATH=. python scripts/doit.py 

(我所以它適用於任何,而不僅僅是一個Python腳本編碼它 - 如果你只關心Python腳本您可以省略cal中的第二個python,並在代碼中放置sys.argv[i-1]中的'python',然後使用sys.argv[i-1:]作爲subprocess.call的參數。

+0

嗯。比我需要的多一點,但謝謝!我明天會試試這個。 – Santa 2010-05-25 02:50:31

1

在Windows中,可以將PYTHONPATH設置爲具有GUI前端的環境變量。在大多數Windows版本上,您可以通過右鍵單擊我的電腦啓動並右鍵單擊屬性。

1

您在Windows上使用SET

SET PYTHONPATH=. 
python scripts/doit.py 
6

如何暫時?如果你打開一個Windows控制檯(CMD.EXE),鍵入:

set PYTHONPATH=. 

將改變PYTHONPATH只有該控制檯,並從它創建的子進程。從這個控制檯運行的任何python腳本都將使用新的PYTHONPATH值。關閉控制檯,更改將被遺忘。