簡體   English   中英

在 Heroku 上部署 Django

[英]Deploy Django on Heroku

我的python版本是3.5.2

Django 版本是 1.8.13

我制作了一個 django 應用程序並想部署到 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())

設置.py

local_setting.py

有什么我錯過的關鍵概念嗎?

[更新]

進程文件

web: gunicorn weather_station.wsgi --pythonpath weather_station

heroku config:set DJANGO_SETTINGS_MODULE=weather_station.settings

這是手動方式

我用這種方式來設置設置。 您可以參考django 女孩為 heroku 設置的 django 設置,或者最好按照heroku 文檔中的說明進行操作

這里BASE_DIR settings位置被local_settingsBASE_DIR覆蓋。 因此,嘗試將行下方移動到settings.py最頂部。

try: 
    from .local_settings import * 
except ImportError: 
    pass

我建議您遵循波紋管結構來和平處理本地和實時服務器的設置。

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

base.pylocalproduction添加通用設置

和 local.py

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

生產.py

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

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

要啟動本地服務器,請在啟動本地服務器時指出本地設置。

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

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM