Heroku显示我的Django应用程序的应用程序错误,即使它在我的本地计算机上完美运行

时间:2018-12-26 17:44:56

标签: python django python-3.x heroku

我已将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文件中规定的库的虚拟环境中,我的应用程序也可以在本地计算机上完美运行。

1 个答案:

答案 0 :(得分:0)

基于我的日志,我意识到以某种方式将设置模块标识为“ django_sites.settings”,这可能是因为python模块“ django-heroku”试图从Heroku Config Variables中读取设置。

为解决此问题,我创建了一个Heroku Config变量,其键为:“ DJANGO_SETTINGS_MODULE”,值为:“ cirrhus.settings”,以覆盖其他任何内容。尽管它可以与本地计算机上的Django测试服务器完美配合,但设置配置变量“ DJANGO_SETTINGS_MODULE”可以解决该问题。