我正在尝试在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
,但这没用。
如果您需要更多信息,请在评论中让我知道。干杯!
答案 0 :(得分:0)
针对此问题的解决方案是将依赖项添加到我的Pipfile中,然后重新生成Pipfile.lock。尽管requirements.txt已经列出了依赖项,但这仍然是必需的。