在执行以下 Python 脚本(我将其命名为 repro.py)时,我遇到了一个我没想到的行为:
import os
print os.environ['PATH'].replace(';', '\n')
如果由 调用python repro.py
,我会得到:
C:\Python26\ C:\Python26\脚本 C:\Windows\system32 C:\Windows C:\Windows\System32\Wbem C:\Program Files\MySQL\MySQL 服务器 5.1\bin
repro.py
当我通过在命令提示符下输入来调用它时,我得到了这个结果:
C:\Python26\
repro.py
根据它的启动方式,显然继承了不同的环境。当作为第一个 arg 到 python 解释器开始时,它的行为更像我所期望的。另一方面,当它由自动确定在“打开” .py 文件时使用什么程序的任何进程启动时,它继承了非常严峻的环境。它开始闻起来像某种安全功能。
有什么方法可以使两种调用方式的行为相同,最好等同于python repro.py
?有谁知道为什么会这样?
版本信息:ActivePython 2.6.5.12 (ActiveState Software Inc.)
在 Windows7 上。