无法连接到Heroku中的Django数据库

时间:2018-09-03 18:57:06

标签: python django database heroku

我正在尝试在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的外壳并尝试安装该软件包时,它表示已经满足要求

~ $ 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',
]

我认为也许我需要在dj_databse_url下添加django_hosts,但这没用。

如果您需要更多信息,请在评论中让我知道。干杯!

1 个答案:

答案 0 :(得分:0)

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