在執行Python腳本之前,如何臨時設置PYTHONPATH環境變量?Windows中的臨時PYTHONPATH
在* nix中,我可以這樣做:
$ PYTHONPATH='.' python scripts/doit.py
在Windows中,這句法行不通的,當然。但是,什麼是等效的?
在執行Python腳本之前,如何臨時設置PYTHONPATH環境變量?Windows中的臨時PYTHONPATH
在* nix中,我可以這樣做:
$ PYTHONPATH='.' python scripts/doit.py
在Windows中,這句法行不通的,當然。但是,什麼是等效的?
設置和恢復在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的參數。
在Windows中,可以將PYTHONPATH設置爲具有GUI前端的環境變量。在大多數Windows版本上,您可以通過右鍵單擊我的電腦啓動並右鍵單擊屬性。
您在Windows上使用SET
:
SET PYTHONPATH=.
python scripts/doit.py
如何暫時?如果你打開一個Windows控制檯(CMD.EXE),鍵入:
set PYTHONPATH=.
將改變PYTHONPATH只有該控制檯,並從它創建的子進程。從這個控制檯運行的任何python腳本都將使用新的PYTHONPATH值。關閉控制檯,更改將被遺忘。
嗯。比我需要的多一點,但謝謝!我明天會試試這個。 – Santa 2010-05-25 02:50:31