Windows上Python脚本调用的奇怪之处(又称为什么路径没有被继承?)

2024-06-13 17:30:07 发布

您现在位置:Python中文网/ 问答频道 /正文

在执行下面的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上。你知道吗


Tags: pathpyimport脚本环境进程oswindows
1条回答
网友
1楼 · 发布于 2024-06-13 17:30:07

这太奇怪了。我正在运行标准的python2.7python.org网站在Windows7上,两个调用都会打印完整路径,如预期的那样。你知道吗

它可能是一个bug,或者ActivePython中的“特性”。:)

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

相关问题 更多 >