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 文件中该变量的值。
- 默认值(如果提供)。
- 空字符串。
当我使用 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 文件中该变量的值。
- 默认值(如果提供)。
- 空字符串。