Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows中的临时PYTHONPATH_Python_Windows_Command Line - Fatal编程技术网

Windows中的临时PYTHONPATH

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

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

在*nix中,我可以这样做:

$ 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=.