为什么我的Python控制台无法识别新的环境变量? (皮查姆)

问题描述 投票:0回答:2

正如标题所示,我已在

.zshrc
文件中添加了一些环境变量,但我的 python 控制台无法识别它们。我想我必须以某种方式重新启动它 - 我该怎么做?

长解决方案,完全退出 Pycharm 并重新打开它。当然有更简洁的方法吗?

尝试单击重新运行,尝试关闭控制台并重新打开它,不得不完全重新启动Pycharm。

python pycharm environment-variables
2个回答
1
投票

环境变量不应在运行时更改。考虑一个带有线程的程序(如 PyCharm)。一个线程读取变量,一个进程修改变量。也许会发生一些错误。但这还有什么意义呢?进程应该不断检查语言,并在环境发生变化时更改显示语言?编程并不好,而且变化很少,而且速度很慢。当然还有其他原因。也考虑一下改变一下。您需要将其更新给所有孩子和孙子吗?因此环境变量被认为是对进程的修复。进程可以在子进程启动时设置它,但仅此而已。

注意:shell 保留自己的环境变量列表,一个用于脚本的 intern,以便使用局部变量,还有一个在子创建时设置(

extern
,现在 shell 在使用时评估变量(例如用于提示)。

您的情况有所不同:您更改了配置文件(这间接更改了环境变量)。文档告诉我们,此类文件是启动文件,因此只能在启动时读取。

您可以获取该文件,例如

. ~/.zshrc
(也称为
source ~/.zshrc
,它不是作为批处理程序(因此不是作为独立程序,因此不是作为子程序)读取文件,而是在您键入程序时读取文件,因此修改现有的 shell 状态(和变量)。但正如我在第一段中所写的:这样做会修改(shell 的)内部变量,而不是任何子级的环境变量。


0
投票

由于python控制台是pycharm的子进程,并且pycharm的环境在重新启动之前不会收到更新,因此环境变量不存在。

获取文件将适用于终端,但不适用于 python 控制台。

© www.soinside.com 2019 - 2024. All rights reserved.