2017-02-07 202 views
0

我的Python版本3.5.2是Django部署在Heroku

Django的版本是1.8.13

我做了一个Django应用程序,并想dploy到的Heroku。

当我输入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> 

wsgi.py

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()) 

setting.py

local_setting.py

有什么重要的概念我错过了什么?

[UPDATE]

procfile

web: gunicorn weather_station.wsgi --pythonpath weather_station

+0

请显示您的Procfile。 –

回答

0

heroku config:set DJANGO_SETTINGS_MODULE=weather_station.settings

这是我用这种方式来设置的设置手动方式

0

这里的settingsBASE_DIR位置是覆盖由local_settingsBASE_DIR。所以,请尝试将下方的行移至settings.py的顶部。

try: 
    from .local_settings import * 
except ImportError: 
    pass 

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

settings/ 
    __init__.py 
    base.py 
    local.py 
    production.py 

wsgi.py添加两个localproduction共同设置在base.py

而且local.py

import * from .base.py 
// Other settings required only for local server like 
// Example DEBUG = True 

production.py

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

点制作设置。因此,改变

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings") 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings.production" 

要启动本地服务器点破本地设置,同时启动本地服务器。

./manage.py runserver --settings=project_name.settings.local 

希望这有助于。