最近我开始使用Heroku来部署Django应用程序。这个平台很好用,但我使用Pycharm进行调试时遇到了一个问题:Pycharm无法使用.env文件中的环境变量进行调试。那么,我该如何使用foreman调试Django应用程序呢?
很遗憾,目前还不支持从.env文件加载环境变量。您可以投票支持该问题http://youtrack.jetbrains.com/issue/PY-5543以便获得进展通知。
我使用一个代码块来解决这个问题,当调试时需要在文件顶部手动调用它。虽然有些笨拙但这是有效的解决方案:
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()
在访问任何环境变量之前。