0

在执行以下 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 上。

4

1 回答 1

0

这很奇怪。我在 Windows 7 上运行来自 python.org 的标准 python 2.7,并且两个调用都按预期打印完整的 PATH。

它可能是 ActivePython 中的错误或“功能”。:)

虽然,你是在同一个命令提示符窗口中打开它们吗?也许你的道路真的改变了?

于 2011-02-25T02:34:39.427 回答