【问题标题】:Can't connect to Django database in Heroku无法连接到 Heroku 中的 Django 数据库
【发布时间】:2018-09-03 18:57:05
【问题描述】:

我正在尝试在 Heroku 中部署 Django 应用程序并使用 dj-database-url 将其连接到数据库。该应用程序在本地运行良好(使用python manage.py runserver),但heroku local web 命令和Heroku 部署都失败并显示以下消息:

9:47:06 PM web.1 |  ModuleNotFoundError: No module named 'dj_database_url'

但是,当我进入 Heroku 的 shell 并尝试安装软件包时,它说要求已经满足

~ $ pip install dj-database-url
Requirement already satisfied: dj-database-url in ./.heroku/python/lib/python3.6/site-packages

附带说明一下,我有另一个名为django_hosts 的模块,我使用它并且没有任何问题。这是我的requirements.txt 文件:

dj-database-url==0.5.0
Django==2.1.1
django-hosts==3.0
psycopg2==2.7.5
pytz==2018.5

下面是production.py 设置文件中使用dj_database_url 的行:

import dj_database_url
...
db_from_env = dj_database_url.config()
DATABASES['default'].update(db_from_env)

我不知道它是否有帮助,但这是我安装的应用程序:

NSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # third party
    'django_hosts',

    # custom apps
    'analytics',
    'shortener',
]

我想也许我需要在django_hosts 下添加dj_databse_url,但它不起作用。

如果您需要更多信息,请在 cmets 中告诉我。干杯!

【问题讨论】:

    标签: python django database heroku


    【解决方案1】:

    我对此问题的解决方案是将依赖项添加到我的 Pipfile,然后重新生成 Pipfile.lock。尽管 requirements.txt 已经列出了依赖项,但这是必要的。

    【讨论】:

    • 嗨!我没有 Pipfile.lock 文件。我看到有一个名为 pipenv 的包可以生成它。 pyenv我一直用到现在,不过你说的我试试看。
    猜你喜欢
    • 2021-10-27
    • 2020-12-12
    • 2014-03-30
    • 2013-04-19
    • 1970-01-01
    • 2017-10-23
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多