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

Posted

技术标签:

【中文标题】如何在 PyCharm 中设置环境变量?【英文标题】:How to set environment variables in PyCharm? 【发布时间】:2017-07-31 04:59:52 【问题描述】:

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

我已阅读this,但这并不能解决我想要的问题。另外,我尝试在Preferences->Build, Execution, Deployment->Console->Python Console中设置环境变量/Django 控制台,但它为解释器设置变量。

【问题讨论】:

在 pycharm 中设置变量有一个缺点,那就是如果你删除配置文件会丢失它们。另一种方法是设置一个默认值,如下所示 import os os.getenv(key='DATABASE_URL', default='postgres://127.0.0.1:5432/my_db_name') 我认为,如果您使用我的回答中提到的方法,您不会丢失环境变量,因为它们将在您使用的文件中。这个答案没有解决这个问题,因为它指的是如何在 PyCharm 中设置它们,而不是它们是否丢失。 我也不认为直接在代码中硬编码值是个好主意。这是一种非常糟糕的做法。 【参考方案1】:

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

    打开右上角的运行配置选择器并点击Edit Configurations...

    找到Environmental variables并点击...

    添加或更改变量,然后点击OK

你可以access your environmental variables 和os.environ

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

【讨论】:

哦,我只是想在那行打字,三点看起来是灰色的,所以我什至没有想过要点击它。 我尝试了这种方法,但 PyCharm 没有选择定义的环境变量(我专门尝试设置 DATABASE_URL)。看起来像一个 PyCharm 错误。 @LNI 在 PyCharm 中有两个地方可以设置环境变量。一个是运行环境(它设置了 Joran 的显示方式),我们也可以设置可用于 Pycharm 控制台的变量(它在这里设置 Preferences -> Build, Execution, Deployment -> Console -> Python Console)跨度> 是的,这对我来说似乎是正确的答案。我要补充一点,如果您在 Defaults/Python 配置中设置环境变量,那么每次您右键单击脚本并运行它时都会使用它 这对我有用。不过必须先重新启动我的解释器。【参考方案2】:

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

安装非常简单:

首选项 > 插件 > 浏览存储库... > 搜索“Env File” > 安装插件

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

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

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

在 3 中,我选择了文件 environment.env,然后我可以在 PyCharm 中单击播放按钮,一切都像一个魅力。

【讨论】:

@lmiguelvargasf 我非常感谢你的回答。看起来 Pycharm 无法在 .bashrc 中获取环境变量源(我在 Linux 上)。这个插件为我节省了很多时间,因为我可以使用 postactivate 文件作为源。 @lmiuelvargasf 是的,对不起。我的意思是 2017.2.4 2017.3 在这里工作。谢谢! 2017.2工作 @krinker,当您浏览文件时,请按cmd + shift+. 显示隐藏文件。【参考方案3】:

此功能现已添加到 IDE(工作 Pycharm 2018.3)

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

更新:与@imguelvargasf 的回答基本相同,但插件默认为我启用。

【讨论】:

我是pycharm 2019,看不到标签EnvFile。这在 Python 配置中是否可用(您的屏幕截图是 DjangoServer)? 他安装了“EnvFile”插件。 此解决方案不适用于 pycharm 2021【参考方案4】:

这是在 pycharm flask/django 控制台中获取 .env(和 .flaskenv)文件的方法。当然,它也适用于普通的 python 控制台。

    在你的环境中做pip install python-dotenv(和pycharm指向的一样)。

    转到:设置 > 构建、执行、部署 > 控制台 > Flask/django 控制台

    “启动脚本”中,在顶部附近添加类似这样的内容:

    from dotenv import load_dotenv load_dotenv(verbose=True)

.env 文件可能如下所示: export KEY=VALUE

是否包含export 并不重要,dotenv 是否可以读取它。

作为替代方案,您还可以在激活 shell 脚本中为相应的虚拟环境获取 .env 文件。

【讨论】:

谢谢,这个答案实际上解决了终端中的环境,而不仅仅是运行配置中。【参考方案5】:

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

setx YOUR_VAR "VALUE"

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

【讨论】:

【参考方案6】:

在 Pycharm Python 控制台中输入

ENV_VAR_NAME="STRING VARIABLE"
INT_VAR_NAME=5

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

【讨论】:

【参考方案7】:

原来的问题是:

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

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

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

这里是 ELSE 看的地方:

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

当然还有前面提到的运行/调试配置。

【讨论】:

以上是关于如何在 PyCharm 中设置环境变量?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何在生产环境中设置 ASP.NET 5 环境变量

如何在 Jupyter notebook 中设置环境变量

如何在fish shell中设置环境变量

如何使用 python 在 GitHub 操作中设置环境变量

如何在 Supervisor 服务中设置环境变量