Windows上的Python脚本调用怪异(又名为什么PATH没有继承?)
我遇到了一个我在执行以下Python脚本时没想到的行为(我把它命名为repro.py):
import os
print os.environ['PATH'].replace(';', 'n')
如果由python repro.py
调用,我得到这个:
C: Python26
C: Python26 Scripts中
C: Windows System32下
C: WINDOWS
C: WINDOWS SYSTEM32 WBEM
C: Program Files MySQL MySQL Server 5.1 bin
当我通过在命令提示符下输入repro.py
来调用它时,我得到以下结果:
C: Python26
显然,repro.py
根据它的启动方式继承了不同的环境。当作为第一个arg到python解释器启动时,它的行为更像我期望的。另一方面,当它通过任何自动计算“打开”.py文件时使用的程序的进程启动时,它继承了非常严峻的环境。它开始闻起来像某种安全功能。
有没有办法让这两种调用方式表现相同,最好相当于python repro.py
?
有谁知道为什么会这样?
版本信息:Windows7上的ActivePython 2.6.5.12 (ActiveState Software Inc.)
。
没有找到相关结果
已邀请:
1 个回复
闲窍