Python 如何在PyCharm中设置环境变量?
我已经开始处理Django项目,我想设置一些环境变量,而不需要手动设置它们,也不需要将bash文件设置为源代码 我想设置以下变量:Python 如何在PyCharm中设置环境变量?,python,django,environment-variables,Python,Django,Environment Variables,我已经开始处理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 我读过,但这并不能解决我想要的问题。此外,我还尝试在首选项->构建、执行、部署中设置环境
export DATABASE_URL=postgres://127.0.0.1:5432/my_db_name
export DEBUG=1
# there are other variables, but they contain personal information
我读过,但这并不能解决我想要的问题。此外,我还尝试在首选项->构建、执行、部署中设置环境变量>控制台->Python控制台/Django控制台,但它设置解释器的变量。我可以使用一个名为PyCharm插件来计算出这个变量。这个插件,基本上允许设置环境变量从一个或多个文件运行配置 安装非常简单: 首选项插件浏览存储库…>搜索“Env文件”>安装插件 然后,我在我的项目根目录中创建了一个名为
environment.env
的文件,其中包含:
DATABASE_URL=postgres://127.0.0.1:5432/my_db_name
DEBUG=1
然后我转到运行->编辑配置,并按照下图中的步骤进行操作:
在3中,我选择了文件
environment.env
,然后我只需单击PyCharm中的播放按钮,一切都像一个符咒一样工作。您可以在PyCharm的运行配置菜单中设置环境变量。
环境变量
并单击…
OK
此功能现在已添加到IDE中(适用于Pycharm 2018.3) 只需单击运行配置中的
EnvFile
选项卡,单击启用EnvFile
,然后单击+图标添加一个env文件
更新:基本上与@imguelvargasf的答案相同,但插件默认为我启用。上述方法都不适用于我。如果您在Windows上,请在PyCharm终端上尝试以下操作:
setx YOUR_VAR "VALUE"
您可以使用
os.environ['your_VAR']
在脚本中访问它,这就是您可以在pycharm/django控制台中生成.env(和.flaskenv)文件的方法。当然,它也适用于普通的python控制台
从dotenv导入加载\u dotenv加载\u dotenv(verbose=True)
export KEY=VALUE
无论是否包含导出,dotenv都可以读取它
作为替代方案,您还可以在激活shell脚本中为相应的虚拟环境生成.env文件。这家伙是对的
请记住。无法使用导出定义环境变量。
例如
REDIS\u HOST=localhost
,但是如果您使用export REDIS\u HOST=localhost
进行定义,那么它将不起作用。@lmiguelvargasf对于这个答案,我非常感谢。看起来Pycharm无法在.bashrc中获取环境变量源代码(我在Linux上)。这个插件节省了我很多时间,因为我可以使用postactivate文件作为源。@lmiguelvargasf是的,对不起。我的意思是2017.2.4在2017.3在这里工作。谢谢2017年工作。2@krinker,当您在浏览文件时,请按,cmd
+shift
+
以显示隐藏的文件。哦,我只是想在那一行上键入,三点显示为灰色,所以我甚至没有想点击它。我尝试了这种方法,但PyCharm没有选择定义的环境变量(我特别尝试设置数据库的URL)。看起来像PyCharm bug。@在PyCharm中,LNI有两个地方可以设置环境变量。一个是用于运行环境(它设置Joran的显示方式),另外我们还可以设置PyCharm中控制台可用的变量(它在这里设置首选项->构建、执行、部署->控制台->Python控制台)是的,这对我来说似乎是正确的答案。我想补充一点,如果你在Defaults/Python配置中设置环境变量,那么每次右键单击脚本并运行它时都会使用它。这对我来说很有效。不过,我必须先重新启动我的解释器。在pycharm中设置变量有一个缺点,那就是如果你删除它们,就会丢失它们另一种方法是设置一个默认值,如下面的import os.getenv(key='DATABASE\u URL',default='1postgres://127.0.0.1:5432/my_db_name')我认为,如果你使用我的答案中提到的方法,你就不会丢失环境变量,因为它们将在你使用的文件中。这个答案并没有解决这个问题,因为它指的是如何在PyGrand中设置它们,而不是它们是否丢失。我也不认为直接在代码中硬编码值是一个好主意。这是一个非常糟糕的做法。.我是pycharm 2019,没有看到选项卡EnvFile
。这在Python配置中可用吗(您的屏幕截图是DjangoServer)?他安装了“EnvFile”插件。
setx YOUR_VAR "VALUE"