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.)
。     
已邀请:
这很奇怪。我在Windows 7上从python.org运行标准的python 2.7,并且两个调用都按预期打印完整的PATH。 它可能是ActivePython中的错误或“功能”。 :) 虽然,您是否在同一个命令提示符窗口中打开它们?也许你的道路真的改变了?     

要回复问题请先登录注册