在Heroku上部署Django

时间:2017-02-07 08:42:33

标签: python django heroku

我的python版本是3.5.2

Django版本是1.8.13

我制作了一个django应用程序并想要部署到heroku。

当我输入Error in GstPipelineFactory

然后本地服务器显示应用程序错误。

谷歌搜索后。

我修复了我的wsgi.py但仍然错误。

heroku open

wsgi.py

.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. 
You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

"'DJANGO_SETTINGS_MODULE' environment variable must be set   

"django.core.exceptions.ImproperlyConfigured: 'DJANGO_SETTINGS_MODULE' environment variable must be set before importing 'whitenoise.django'

File "/app/.heroku/python/lib/python3.5/site-packages/gunicorn/arbiter.py", line 506, in reap_workers raise HaltServer(reason, self.WORKER_BOOT_ERROR)

gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

setting.py

local_setting.py

我错过了任何关键概念吗?

[更新]

procfile

import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "weather_station.settings") from django.core.wsgi import get_wsgi_application from whitenoise.django import DjangoWhiteNoise application = DjangoWhiteNoise(get_wsgi_application())

3 个答案:

答案 0 :(得分:0)

heroku config:set DJANGO_SETTINGS_MODULE=weather_station.settings

这是手动方式

答案 1 :(得分:0)

我用这种方式设置设置。你可以参考这个 django settings for heroku by django girls或最好按照heroku docs

上的说明操作

答案 2 :(得分:0)

BASE_DIR的{​​{1}}位置覆盖settings的{​​{1}}。因此,请尝试将以下行移至BASE_DIR的最顶层。

local_settings

我建议您按照波纹管结构来处理本地和实时服务器的安静设置。

settings.py

try: from .local_settings import * except ImportError: pass

中添加settings/ __init__.py base.py local.py production.py local的常用设置

和local.py

production

production.py

base.py

将生产设置指向import * from .base.py // Other settings required only for local server like // Example DEBUG = True 。所以,改变

import * from .base.py
// Other settings required only for live server
// Example DEBUG = False

wsgi.py

在启动本地服务器时启动本地服务器指出本地设置。

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")
希望这会有所帮助。