我最近转移到Heroku部署Django应用程序。它运行良好,但我使用Pycharm进行调试,最近遇到问题,因为Pycharm不会使用.env文件环境变量进行调试。如何使用foreman调试Django应用程序?
答案 0 :(得分:4)
不幸的是,还不支持从.env文件加载环境变量。您可以对问题http://youtrack.jetbrains.com/issue/PY-5543进行投票,以获得有关进度的通知。
答案 1 :(得分:1)
您可以从.env文件中读取本地默认环境变量,并在您的环境中进行设置。这已在此处详细记录 - http://www.wellfireinteractive.com/blog/easier-12-factor-django/
答案 2 :(得分:0)
我使用一个代码块解决这个问题,我在调试时手动调用文件顶部的代码块。这是一个相当蹩脚但却很有效的解决方案:
import os
def load_environment():
env = {}
with open('.env', 'r') as env_file:
env_vars = env_file.readlines()
for v in env_vars:
v = v.strip().replace('"', '').replace("'", '')
if v and v[0] != '#':
v = v.split('=')
env[v[0]] = v[1]
os.environ.update(env)
然后从我正在调试的任何应用程序或脚本中调用它,例如:
from debug.environment_loader import load_environment
load_environment()
访问任何环境变量之前。
答案 3 :(得分:0)
正如在support page中链接的Dmitry’s answer所述,现在有一个名为EnvFile的第三方PyCharm插件会在执行前导入.env
的内容。< / p>