路径变量的差异python.exe以及pythonw.exe打印(操作系统环境)结果

2024-06-26 14:07:26 发布

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

我有个奇怪的问题:

当我执行此操作时:

print(os.environ) 

在python.exe,我看到一件事,无所事事(pythonw.exe)另一个,为什么?在

可能这是某种缓存还是什么?在

PS我的系统:Windows 7 x64和Python 3.5.1 x32


为什么你把它标为重复,我找不到这类问题的答案。我读到关于python.exe以及pythonw.exe,但我不明白为什么路径变量是不同的。在


以下是差异:

在python.exe公司名称:

C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files\Broadcom\Broadcom 802.11 Network Adapter\Driver;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo\Bluetooth Software\;C:\Program Files\Lenovo\Bluetooth Software\syswow64;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\Git\cmd;C:\Program Files (x86)\nodejs\;C:\Users\someusername\AppData\Local\Programs\ Python\Python35-32\Scripts\;C:\Users\someusername\AppData\Local\Programs\Python\Python35-32\;C:\Program Files (x86)\nodejs\;C:\Users\someusername\AppData\Roaming\npm

在pythonw.exe公司名称:

C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files\Broadcom\Broadcom 802.11 Network Adapter\Driver;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo\Bluetooth Software\;C:\Program Files\Lenovo\Bluetooth Software\syswow64;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\Git\cmd;C:\Users\someusername\AppData\Local\Programs\Python\Python35-32\Scripts\;C:\Users\someusername\AppData\Local\Programs\Python\Python35-32\

你看到nodejs路径了吗python.exe结果,而不是pythonw.exe?我删除了所有的pyc文件,但没有帮助


Tags: clientwindowscomponentsfilesprogramexemanagementusers
1条回答
网友
1楼 · 发布于 2024-06-26 14:07:26

PATH环境变量的值与difference between python.exe and pythonw.exe几乎没有关系。关于路径或环境变量,您需要了解的是,它们通常是从调用进程继承的。在

因此,当您从命令行调用python.exe时,该进程将继承命令行所拥有的PATH值。如果使用某种快捷方式打开IDLE,那么它将从Windows继承值。在

每一个过程都可以随心所欲地处理环境变量,因此会影响它们启动的过程。例如:

C:\>set FOO=Hello world
C:\>py -3
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['FOO']
'Hello world'
>>> ^Z

C:\>set FOO=Hello world foo bar baz
C:\>py -3
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['FOO']
'Hello world foo bar baz'

就像这样,我创建了一个新的环境变量FOO,它被自动传递给我正在启动的进程(python3),它可以在那里访问它。在

这同样适用于PATH环境变量。如果您看到了差异,可能不是因为您的可执行文件不同,而是因为调用进程可能以不同的方式影响了它。在

相关问题 更多 >