PyCharm 不更新环境变量

PyCharm not updating with environment variables

当我使用 vim 更新我的环境变量时(在 ~/.bashrc 中),PyCharm 没有立即获得更新。我必须关闭程序,再次来源~/.bashrc,然后重新打开PyCharm。

有什么方法可以让 PyCharm 自动获取更改(或无需关闭)?

这就是环境变量的工作原理。如果更改它们,则必须重新获取 .bashrc(或环境变量所在的任何文件)。

Pycharm 维护它自己的环境变量版本,这些变量不是来自 shell。

似乎如果 pycharm 从 virtualenv 或包含所述变量的 shell 执行,它将加载它们,但它不是动态的。

下面的答案有一个 settings.py 脚本供 virtualenv 更新和维护设置。我不确定这是否完全解决了您的问题。

Pycharm: set environment variable for run manage.py Task

当创建任何进程时,它会从其父进程(O.S. 本身)继承环境变量。如果您在父级更改环境变量,则子进程不会知道它。

PyCharm 允许您从 Run\Debug 配置 window 更改环境变量。 运行 > 编辑配置 > 环境变量 ->

如果您使用的是 "sudo python" technique,请注意默认情况下它不会传达环境变量。

要正确传递 PyCharm 启动配置中定义的环境变量,请使用 -E 开关:

sudo -E /path/to/python/executable "$@"

我最近在 windows 中发现了一个解决方法。关闭Pycharm,直接从快捷方式复制命令到运行Pycharm,在新的终端window重新运行:cmd、cmder等。

C:\
λ "C:\Program Files\JetBrains\PyCharm 2017.2.1\bin\pycharm64.exe"

在我的例子中pycharm即使在重新启动后也不会从 bashrc 获取环境变量

我知道这已经很晚了,但我也遇到了这个问题并且发现接受的答案很乏味,因为我已经保存了很多配置。

同事告诉我的解决方案是将环境变量添加到 ~/.profile 中。然后我不得不重新启动我的 linux 机器并且 pycharm 获得了新值。 (对于 OSX,我只需要获取 ~/.profile 并完全重启 pycharm)

需要注意的一件事是另一位同事说 pycharm 会查看 ~/.bash_profile 所以如果你有那个文件,那么你需要在那里添加环境变量

from dotenv import load_dotenv

load_dotenv(override=True)

Python-dotenv 可以使用 POSIX 变量扩展来插入变量。

使用load_dotenv(override=True)或dotenv_values(),变量的值是下面定义的第一个值名单:

  • .env 文件中该变量的值。
  • 环境中该变量的值。
  • 默认值(如果提供)。
  • 空字符串。

使用 load_dotenv(override=False),变量的值是以下列表中定义的第一个值:

  • 该变量在环境中的值
  • .env 文件中该变量的值。
  • 默认值(如果提供)。
  • 空字符串。