当我更新我的环境变量(我使用vim来编辑〜/ .bashrc)PyCharm不立即得到更新,我不得不关闭程序,再次源〜/ .bashrc,并重新打开PyCharmpycharm不更新与环境变量
任何方式使PyCharm自动或不关闭的变化源变化?
当我更新我的环境变量(我使用vim来编辑〜/ .bashrc)PyCharm不立即得到更新,我不得不关闭程序,再次源〜/ .bashrc,并重新打开PyCharmpycharm不更新与环境变量
任何方式使PyCharm自动或不关闭的变化源变化?
当任何进程获得创建继承它的环境变量从它的父进程(O.S.本身你的情况)。如果您在父级更改环境变量,则子进程不知道它。
PyCharm允许您从Run \ Debug Configuration窗口中更改环境变量。 运行>编辑配置>环境变量 - >
感谢Omer727,我知道手动添加变量到测试中,并且一直在使用这个选项,但是特别想知道为什么os.environ没有更新,看起来像你说的关于子进程没有更新后,它是推出是正确的,似乎没有办法更新没有关闭应用程序 – RenaissanceProgrammer
这就是环境变量的工作原理。如果你改变它们,你必须重新编译你的.bashrc(或者是环境变量所在的文件)。
是的,这是可以理解的,但是,终端中的文件资源不会更新OS对象中的变量,这包括源代码完成后运行一段代码。只关闭应用程序并重新启动它将新变量添加到操作系统对象,从技术上讲,每次运行代码时,操作系统对象应该是新鲜的 – RenaissanceProgrammer
这也是环境变量的工作方式。当你加载你的应用程序时,它基本上会载入你的环境快照。 –
好,但IMO“这只是它的工作原理”并不是什么答案,Omer提供了一些背景资料,说明它为什么以这种方式工作,这就是为什么它得到我的接受 – RenaissanceProgrammer
Pycharm维护它自己的环境变量版本,并且它们不是从shell中获取的。
看来,如果从virtualenv或包含所述变量的shell执行pycharm,它将加载它们,但它不是动态的。
下面的答案有一个settings.py脚本,用于virtualenv更新和维护设置。这是否完全解决了你的问题,我不确定。
如果您使用的是"sudo python" technique,要知道,它默认情况下不传达的环境变量。
要正确地传递在PyCharm启动配置中定义的环境变量,使用-E
开关:
sudo -E /path/to/python/executable "[email protected]"
我最近发现Windows中的解决方法。关闭Pycharm,复制直接从快捷方式运行Pycharm命令,然后重新运行在一个新的终端窗口:CMD,cmder等
C:\
λ "C:\Program Files\JetBrains\PyCharm 2017.2.1\bin\pycharm64.exe"
在我的情况pycharm不采取ENV变量从bashrc中,即使重新启动后
好奇......你更新环境变量的频率如何?另外,你可能在http://superuser.com有更好的运气。 – isherwood
不是很经常,我的项目的一些敏感信息存储在环境变量中而不是代码中,当我做'$ printenv'时我正确地看到变量,所以我不认为这是操作系统的问题 – RenaissanceProgrammer
解决了我的问题重启不起作用,我没有为我的shell使用正确的RC文件。但是Pycharm仍然需要重新启动以获得新的变量到'os.environ' – RenaissanceProgrammer