win10 20H2,pycharm2020.3
启动pycharm后,再添加环境变量,然后在pycharm里获取不到os.environ.get()和os.getenv(),打印它们的类型为None。但添加环境变量后,再另外写一个py文件,不要用pycharm运行它,用其他软件运行,可以获取到环境变量。
若是在启动pycharm前,就已经添加了环境变量,那上面的方法可以获取到。
所以若是pycharm获取不到环境变量,就重启pycharm。
可能的原因在参考链接5:When any process get created it inherit the environment variables from it's parent process (the O.S. itself in your case). if you change the environment variables at the parent level, the child process is not aware of it.
机翻:当任何进程被创建时,它会从它的父进程继承环境变量(在你的情况下是操作系统本身)。如果您在父级别更改环境变量,则子进程不知道。
参考链接里在pycharm中添加环境变量,而不是在系统中添加,这种方法我这不行,还是获取不到。参考链接1,参考链接2,参考链接3,参考链接4,参考链接5
在Win10 20H2系统上,使用PyCharm 2020.3时遇到一个问题,即在启动PyCharm后添加的环境变量无法通过os.environ.get()和os.getenv()在PyCharm内部获取。问题在于子进程不会实时继承父进程(操作系统)的环境变量变化。解决方法是重新启动PyCharm以使改动生效。如果在启动PyCharm前设置环境变量,则可以在PyCharm内正常读取。此外,直接用其他软件运行Python脚本则能正确获取环境变量。
2582

被折叠的 条评论
为什么被折叠?



