【发布时间】:2025-12-04 17:00:01
【问题描述】:
我最近搬到 Heroku 来部署 Django 应用程序。它运行良好,但是我使用 Pycharm 进行调试,最近遇到了一个问题,因为 Pycharm 不会使用 .env 文件环境变量进行调试。如何使用工头调试 Django 应用程序?
【问题讨论】:
标签: django heroku pycharm foreman
我最近搬到 Heroku 来部署 Django 应用程序。它运行良好,但是我使用 Pycharm 进行调试,最近遇到了一个问题,因为 Pycharm 不会使用 .env 文件环境变量进行调试。如何使用工头调试 Django 应用程序?
【问题讨论】:
标签: django heroku pycharm foreman
不幸的是,尚不支持从 .env 文件加载环境变量。您可以为问题投票http://youtrack.jetbrains.com/issue/PY-5543 以获得进度通知。
【讨论】:
您可以从 .env 文件中读取本地默认环境变量并在您的环境中设置它们。这已在此处详细记录 - http://www.wellfireinteractive.com/blog/easier-12-factor-django/
【讨论】:
我使用调试时在文件顶部手动调用的代码块来解决此问题。这是一个相当蹩脚但有效的解决方案:
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()
在访问任何环境变量之前。
【讨论】:
正如Dmitry’s answer 中链接的support page 中所述,现在有一个名为EnvFile 的第3 方PyCharm 插件将在执行前导入您的.env 的内容。
【讨论】: