San*_*nta 5 python windows command-line
如何在执行Python脚本之前临时设置PYTHONPATH环境变量?
在*nix中,我可以这样做:
$ PYTHONPATH='.' python scripts/doit.py
Run Code Online (Sandbox Code Playgroud)
在Windows中,当然这种语法不起作用.但是等价物是什么?
要在Windows命令行上设置和恢复环境变量,需要一个不幸的"有点折磨"的方法......:
SET SAVE=%PYTHONPATH%
SET PYTHONPATH=.
python scripts/doit.py
SET PYTHONPATH=%SAVE%
Run Code Online (Sandbox Code Playgroud)
您可以使用一些辅助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:]))
Run Code Online (Sandbox Code Playgroud)
被称为,例如,
python withenv.py PYTHONPATH=. python scripts/doit.py
Run Code Online (Sandbox Code Playgroud)
(我编写了它,因此它适用于任何子进程,而不仅仅是Python脚本 - 如果你只关心Python脚本,你可以省略cal中的第二个python并将'python'放入sys.argv[i-1]代码中,然后sys.argv[i-1:]用作subprocess.call的参数).
怎么暂时的?如果您打开Windows控制台(cmd.exe),请键入:
set PYTHONPATH=.
Run Code Online (Sandbox Code Playgroud)
将仅更改该控制台的PYTHONPATH以及从中创建的任何子进程.从此控制台运行的任何python脚本都将使用新的PYTHONPATH值.关闭控制台,将忘记更改.
| 归档时间: |
|
| 查看次数: |
5186 次 |
| 最近记录: |