Windows中的临时PYTHONPATH

在执行Python脚本之前,如何临时设置PYTHONPATH环境variables?

在* 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控制台(cmd.exe),请键入:

 set PYTHONPATH=. 

将仅改变该控制台的PYTHONPATH以及由其创建的任何子进程。 从这个控制台运行的任何python脚本将使用新的PYTHONPATH值。 关闭控制台,更改将被遗忘。

在Windows中,可以将PYTHONPATH设置为具有GUI前端的环境变量。 在大多数Windows版本上,可以通过右键单击我的电脑启动,然后右键单击属性。

您在Windows上使用SET

 SET PYTHONPATH=. python scripts/doit.py