如何在PyCharm中设置环境变量?


79

我已经开始在Django项目中工作,我想设置一些环境变量,而不必手动设置它们或将bash文件作为源。

我想设置以下变量:

export DATABASE_URL=postgres://127.0.0.1:5432/my_db_name
export DEBUG=1
# there are other variables, but they contain personal information

我已经读过这篇文章,但这并不能解决我想要的问题。另外,我尝试在Preferences- > Build,Execution,Deployment- > Console- > Python Console / Django Console中设置环境变量,但是它设置了解释器的变量。


在pycharm中设置变量有一个缺点,即如果删除配置文件,则会丢失它们。另一种方法是设置一个默认值,例如以下import os os.getenv(key ='DATABASE_URL',default ='postgres://127.0.0.1:5432 / my_db_name')
YH Wu,

我认为,如果您使用我的答案中提到的方法,您将不会丢失环境变量,因为它们将位于您使用的文件中。这个答案没有解决这个问题,因为它是指如何在PyCharm中设置它们,而不管它们是否丢失。
lmiguelvargasf '18

2
我也不认为直接在代码中对值进行硬编码是一个好主意。这是非常不好的做法。
lmiguelvargasf '18年

Answers:


132

您可以在Pycharm的运行配置菜单中设置环境变量。

  1. 打开右上角的“运行配置”选择器并单击 Edit Configurations...

    编辑配置...

  2. 查找Environmental variables并单击...

    环境变量

  3. 添加或更改变量,然后单击 OK

    编辑环境变量

您可以访问你的环境变量os.environ

import os
print(os.environ['SOME_VAR'])

1
哦,我只是想在那条线上键入,所以三点看上去是灰色的,所以我什至没有想到要单击它。
alexey

4
我尝试了这种方法,但是PyCharm没有选择已定义的env var(我专门尝试设置DATABASE_URL)。看起来像是PyCharm错误。
LNI

2
PyCharm中的@LNI有两个地方可以设置env变量。一个用于运行环境(它设置Joran的显示方式),我们还可以设置将在Pycharm中用于控制台的变量(并且在此处设置“首选项”->“构建,执行,部署”->“控制台”->“ Python Console”)
罗马Kazakov

是的,这似乎是我的正确答案。我要补充一点,如果您在Defaults / Python配置中设置了环境变量,则每次在脚本上单击鼠标右键并运行它时都会使用该变量
Chris Sewell,

1
这对我有用。不过必须先重启我的解释器。
Kosmonaut

83

我能够使用一个名为EnvFile的PyCharm插件来解决这个问题。此插件基本上允许设置环境变量以从一个或多个文件运行配置。

安装非常简单:

首选项>插件>浏览存储库... >搜索“环境文件” >安装插件

然后,我在项目根目录中创建了一个文件,该文件environment.env包含:

DATABASE_URL=postgres://127.0.0.1:5432/my_db_name
DEBUG=1

然后转到“运行” ->“编辑配置”,然后按照下图的步骤进行操作:

设置环境变量

在3中,我选择了文件environment.env,然后可以单击PyCharm中的播放按钮,所有内容都像一个超级按钮。


7
@lmiguelvargasf对于这个答案,我感激不尽。看来Pycharm无法在.bashrc中拾取环境变量源(我在Linux上)。这个插件为我节省了很多时间,因为我可以使用后激活文件作为源。
jacekbj

1
@lmiguelvargasf是的,很抱歉。我的意思是2017.2.4
Daniil Mashkin '12

2
在2017年3月在这里工作。谢谢!
losik123 '18

在2017.2工作
乔纳森

2
@krinker,在浏览文件时,请按cmd+ shift+.显示隐藏的文件。
lmiguelvargasf

10

现在已将此功能添加到IDE中(正在运行Pycharm 2018.3)

只需单击EnvFile运行配置中的选项卡,单击Enable EnvFile并单击+图标即可添加一个环境文件

以光荣的物质主题为例

更新:基本上与@imguelvargasf的答案相同,但是默认情况下已为我启用了该插件。


2
我是pycharm 2019,我看不到选项卡EnvFile。这在Python配置中可用吗(您的屏幕截图为DjangoServer)?
alltej

0

以上方法都不适合我。如果您使用的是Windows,请在PyCharm终端上尝试以下操作:

setx YOUR_VAR "VALUE"

您可以使用在脚本中访问它os.environ['YOUR_VAR']

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.