我已将Django应用程序部署到Heroku。但是,我收到了应用程序错误,并在Heroku的日志中发现了一些奇怪的东西:“ ModuleNotFoundError:没有名为'django_site'的模块。”我没有使用过任何名为“ django_site”的模块,也没有意识到django有一个使用此名称的模块。
任何人都可以根据我的Heroku logs告诉我是什么原因引起的错误吗?
这是requirements.txt文件:
dj-database-url==0.5.0
Django==2.1.4
django-heroku==0.3.1
gunicorn==19.9.0
mysqlclient==1.3.14
numpy==1.15.4
psycopg2==2.7.6.1
pytz==2018.7
whitenoise==4.1.2
在django设置中,我的INSTALLED_APPS
变量如下:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cirrhus',
'flavors',
'sine',
'training_sessions',
'snapshots',
'training_data',
'logs',
'core',
'input_data',
'flowers',
]
注意:即使在仅具有我的requirements.txt文件中规定的库的虚拟环境中,我的应用程序也可以在本地计算机上完美运行。
答案 0 :(得分:0)
基于我的日志,我意识到以某种方式将设置模块标识为“ django_sites.settings”,这可能是因为python模块“ django-heroku”试图从Heroku Config Variables中读取设置。
为解决此问题,我创建了一个Heroku Config变量,其键为:“ DJANGO_SETTINGS_MODULE”,值为:“ cirrhus.settings”,以覆盖其他任何内容。尽管它可以与本地计算机上的Django测试服务器完美配合,但设置配置变量“ DJANGO_SETTINGS_MODULE”可以解决该问题。