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

我已经开始在一个 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

我已经阅读了 这个,但这并不能解决我想要的问题。此外,我尝试在 偏好-> 构建,执行,部署-> 控制台-> 巨蟒控制台/姜戈控制台中设置环境变量,但它设置了解释器的变量。

254616 次浏览

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

安装过程非常简单:

Preferences > 插件 > 浏览存储库..。 > 搜寻「 Env 档案」 > 安装插件.

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

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

然后我转到 快跑-> 编辑配置,然后按照下一张图片中的步骤进行操作:

Set Environment Variables

在3中,我选择了文件 environment.env,然后我只需点击 PyCharm 中的播放按钮,一切就像一个魔法。

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

  1. 打开右上角的 Run Configuration 选择器并单击 Edit Configurations...

Edit Configurations...

  1. 从菜单中选择 正确文件,找到 Environmental variables并单击 ...

Environment variables

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

Editing environmental variables

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

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

这个功能现在已经被添加到 IDE 中(可以运行 Pycharm2018.3)

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

Example with the glorious material theme

更新: 本质上与@imguelvargasf 的答案相同,但我默认启用了该插件。

以上的方法对我都不管用。如果你在 Windows 上,试试 PyCharm 终端:

setx YOUR_VAR "VALUE"

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

这就是您可以做的来源于。环境影响评估(及。Flaskenv)文件。当然,它也适用于普通的 Python 控制台。

  1. 在您的环境中执行 pip install python-dotenv(与 pycharm 指出的相同)。

  2. 转到: < strong > Settings > Build,Execution,Deployment > Console > Flask/django Console

  3. “开始剧本”中,在顶部附近包括这样的内容:

    from dotenv import load_dotenv
    load_dotenv(verbose=True)

Env 文件可以如下所示: export KEY=VALUE

是否包含 export并不重要。

作为替代方法,您还可以在相应虚拟环境的激活 shell 脚本中找到. env 文件的源代码。

在 PycharmPython 控制台中只需键入

ENV_VAR_NAME="STRING VARIABLE"
INT_VAR_NAME=5

与其他 Python 文本编辑器不同,在 Pycharm 不添加 export

最初的问题是:

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

两个最受欢迎的答案告诉您如何为 PyCharm 运行/调试配置设置环境变量——手动在“ Environment variable”中输入它们或使用 EnvFile 插件。

在使用 PyCharm 多年之后,我了解了可以设置 PyCharm 环境变量的其他关键领域。EnvFile 不适用于这些其他区域!

下面是要查看的 ELSE (在设置中) :

  • 工具 > 终端 > 环境变量
  • 语言及框架 > Django > 环境变量
  • 构建、执行、部署 > 控制台 > Python 控制台 > 环境变量
  • 构建、执行、部署 > 控制台 > Django 控制台 > 环境变量

当然,还有已经提到过的运行/调试配置。

此方法在从。Env 文件,而且实现起来也很容易。

  1. 在项目的根文件夹中创建一个. env 文件

  2. 安装一个名为“ 巨蟒 -dotenv”的软件包

  3. 在需要使用环境变量的地方导入和加载包,如下所示

     import os
    from dotenv import load_dotenv, find_dotenv
    
    
    load_dotenv(find_dotenv())
    any_secret_var = os.get_env("SECRET_KEY")
    

然后它就会像魔法一样运作

. env 文件应该是这样的, 不要在.env 文件中的值周围放置任何 qoutes

    SECRET_KEY=any_secret_value_you_need_to_place_in

使用虚拟环境测试解决方案。

创建一个脚本来定义和导出或者源代码 env vars。然后将脚本定义为现有虚拟 env 的 python 解释器。该解决方案适用于任何任务,如运行、调试、控制台..。

示例脚本:

#!/bin/bash




DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export VAR1="TEST1"
source $DIR/../../.env
$DIR/python "$@"

如果有人想为他们的运行/调试配置设置 所有环境变量,我在这里列出了我的解决方案。

  1. 转到其他答案所指向的“编辑配置”。
  2. 在面板中单击 编辑配置模板
  3. 在那里编辑环境变量。

通过这样做,变量将在每次创建新配置时出现。