Windows中的临时PYTHONPATH
在执行Python脚本之前,如何临时设置PYTHONPATH环境变量 在*nix中,我可以这样做:Windows中的临时PYTHONPATH,python,windows,command-line,Python,Windows,Command Line,在执行Python脚本之前,如何临时设置PYTHONPATH环境变量 在*nix中,我可以这样做: $ PYTHONPATH='.' python scripts/doit.py 当然,在Windows中,这种语法不起作用。但是,等价物是什么?在Windows中,可以将PYTHONPATH设置为环境变量,该变量具有GUI前端。在大多数版本的Windows上,您可以通过右键单击“我的电脑”并右键单击“属性”来启动。您可以在Windows上使用SET: SET PYTHONPATH=. pytho
$ PYTHONPATH='.' python scripts/doit.py
当然,在Windows中,这种语法不起作用。但是,等价物是什么?在Windows中,可以将PYTHONPATH设置为环境变量,该变量具有GUI前端。在大多数版本的Windows上,您可以通过右键单击“我的电脑”并右键单击“属性”来启动。您可以在Windows上使用
SET
:
SET PYTHONPATH=.
python scripts/doit.py
要在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,将“Python”放在
sys.argv[I-1]
的代码中,然后使用sys.argv[I-1://code>作为subprocess.call的参数)。有多暂时?如果打开Windows控制台(cmd.exe),请键入:
将仅更改该控制台的PYTHONPATH以及由此创建的任何子进程。从该控制台运行的任何python脚本都将使用新的PYTHONPATH值。关闭控制台,找零的钱就会被忘记。Hm.比我需要的多一点,但谢谢!我明天试试这个。
set PYTHONPATH=.