在执行下面的Python脚本时,我遇到了一个意想不到的行为(我将其命名为复制)地址:
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
?
有人知道为什么会这样吗?你知道吗
版本信息:ActivePython 2.6.5.12 (ActiveState Software Inc.)
在Windows7上。你知道吗
这太奇怪了。我正在运行标准的python2.7python.org网站在Windows7上,两个调用都会打印完整路径,如预期的那样。你知道吗
它可能是一个bug,或者ActivePython中的“特性”。:)
但是,是否在同一个命令提示窗口中打开它们?也许你的道路真的改变了?你知道吗
相关问题 更多 >
编程相关推荐