有时当我在Windows中更改环境变量,然后使用软件时,取决于这些变量,它们没有正确更新。
很好的例子是更改一个变量,然后打开Windows命令行并回显该变量并看到它没有被更改,即使你在Environment Variables窗口中正确地更改了它。
我正在处理的另一个例子:
我一直在为一个项目使用Python 2.4.x,它使用的值是env var PYTHONPATH
:
C:\Python24;C:\Python24\lib
今天我为该项目安装了Python 2.5.x.我改变了我的PYTHONPATH:
C:\Python25;C:\Python25\lib
当我使用Python 2.5运行脚本并执行此操作时:
import sys
print sys.path
打印:
'C:\\PYTHON24', 'C:\\PYTHON24\\lib' (and some other Python 2.5 related default installation paths)
很明显,旧的PYTHONPATH
环境变量变化并没有真正坚持......
有谁知道为什么会发生这种情况以及如何解决这个问题?
答案 0 :(得分:2)
在“系统属性”选项卡中更改环境变量时,新值将传播到Windows资源管理器,并从Windows资源管理器(或“运行”框,“开始”菜单等)打开任何应用程序(如cmd.exe)。 。)应该看到新的价值。
但是,如果您正在运行编辑器或python等程序或某些非Microsoft程序启动程序,则更改环境变量,然后从该程序(而不是Windows资源管理器)启动cmd.exe查看环境变量的旧值。原因是正在运行的程序忽略了来自Windows的通知,指出环境已经发生了变化(并非完全不寻常),并且由于启动的进程继承了环境变量,因此子进程将看不到更改。
解决方法是确保从Windows资源管理器或“运行”框中启动应用程序。重新启动计算机也会起作用(如果重新启动无法解决问题,那么还会发生其他事情)。