Windows environment variables change when opening command line?

六月ゝ 毕业季﹏ 提交于 2021-02-17 02:00:11

问题


Sometimes when I change my environment variables in Windows, and then use software the depends on those variables, they are not properly updated.

And good example is to change a variable, then open up Windows Command Line and echo the variable and see that it hasn't been changed, even though you properly changed it in the Environment Variables window.

Another example I'm dealing with right now:

I've been using Python 2.4.x for a while for a project, which uses the env var PYTHONPATH who's value has been:

C:\Python24;C:\Python24\lib

Today I installed Python 2.5.x for the project. I changed my PYTHONPATH to be:

C:\Python25;C:\Python25\lib

When I use Python 2.5 to run a script and do this:

import sys
print sys.path

It prints:

'C:\\PYTHON24', 'C:\\PYTHON24\\lib' (and some other Python 2.5 related default installation paths)

So clearly, the old PYTHONPATH environment variable changes aren't really sticking....

Does anyone know why this happens and how to fix it?


回答1:


When you change an environment variable in the System Properties tab, the new value will propagate to the Windows Explorer, and any apps (such as cmd.exe) opened from the Windows Explorer (or the Run box, Start Menu, etc.) should see the new value.

However, if you're running a program such as an editor or python or some non-Microsoft program launcher, then change an environment variable, and then launch cmd.exe from that program (instead of Windows Explorer) you are likely to see the old value of the environment variable. The reason is that the running program ignored the notification from Windows saying that the environment has changed (not at all unusual), and since the launched process inherits the environment variables, the child process won't see the changes.

The workaround is to make sure you start your app from Windows Explorer or the Run box. Rebooting your machine will work also (if rebooting doesn't solve the problem, then something else is going on).



来源:https://stackoverflow.com/questions/2963331/windows-environment-variables-change-when-opening-command-line

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!