【问题标题】:Deploy a Django Application to Digital Ocean - Gunicorn Error将 Django 应用程序部署到 Digital Ocean - Gunicorn 错误
【发布时间】:2019-01-16 09:59:22
【问题描述】:

我正在尝试借助 tutorial 将我的第一个应用程序部署到数字海洋。

当我尝试运行 sudo supervisorctl restart [appname] 时,我收到以下错误。 (这只是部分错误)

     [2019-01-16 09:10:49 +0000] [2653] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/home/srimal/django_project/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/home/srimal/django_project/lib/python3.6/site-packages/gunicorn/workers/base.py", line 129, in init_process
    self.load_wsgi()
  File "/home/srimal/django_project/lib/python3.6/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/home/srimal/django_project/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/home/srimal/django_project/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
    return self.load_wsgiapp()
  File "/home/srimal/django_project/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/home/srimal/django_project/lib/python3.6/site-packages/gunicorn/util.py", line 350, in import_app
    __import__(module)
  File "/home/srimal/django_project/productUploader/shadesProductUploader/wsgi.py", line 16, in <module>
    application = get_wsgi_application()
  File "/home/srimal/django_project/lib/python3.6/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
    django.setup(set_prefix=False)
  File "/home/srimal/django_project/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/srimal/django_project/lib/python3.6/site-packages/django/apps/registry.py", line 89, in populate
    app_config = AppConfig.create(entry)
  File "/home/srimal/django_project/lib/python3.6/site-packages/django/apps/config.py", line 90, in create
    module = import_module(entry)
  File "/home/srimal/django_project/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'authSection'

我在服务器中的设置是

和主管配置文件

#!/bin/sh
[program:productUploader]
command=/home/srimal/django_project/bin/gunicorn_start
user=srimal
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/home/srimal/logs/gunicorn-error.log

还有 gunicorn_start 文件

#!/bin/bash

NAME="productUploader"
DIR=/home/srimal/django_project
USER=srimal
GROUP=srimal
WORKERS=3
BIND=unix:/home/srimal/run/gunicorn.sock
DJANGO_SETTINGS_MODULE=productUploader.shadesProductUploader.settings
DJANGO_WSGI_MODULE=productUploader.shadesProductUploader.wsgi
LOG_LEVEL=error

cd $DIR
source /home/srimal/django_project/bin/activate

export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DIR:$PYTHONPATH

exec /home/srimal/django_project/bin/gunicorn    ${DJANGO_WSGI_MODULE}:application \
 --name $NAME \
 --workers $WORKERS \
 --user=$USER \
 --group=$GROUP \
 --bind=$BIND \
 --log-level=$LOG_LEVEL \
 --log-file=-

我做错了什么?

【问题讨论】:

  • 发布您的 productUploader.shadesProductUploader.settings 文件,您可能错过了安装依赖项或将其添加到 INSTALLED_APPS。
  • setting.py 文件位于 shadesProductUploader 文件夹下。我将只添加已安装的应用程序部分,因为完整的文件对于 stackoverflow 来说太长了。
  • INSTALLED_APPS = ['authSection','mainSection','django.contrib.humanize','django.contrib.admin','django.contrib.auth','django.contrib.contenttypes' , 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
  • productUploader 文件夹是否包含__init__.py

标签: django digital-ocean


【解决方案1】:

看起来productUploader 目录似乎是一个python 包,这是基于您在DJANGO_SETTINGS_MODULEDJANGO_WSGI_MODULE 的虚线路径中传递它的事实。因此,您也应该对INSTALLED_APPS 中的应用程序执行相同操作:

INSTALLED_APPS = [
    'productUploader.authSection',  # Use full path
    'productUploader.mainSection',  # Use full path
    'django.contrib.humanize',
    'django.contrib.admin', 
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles',
]

【讨论】:

    猜你喜欢
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 2015-02-24
    • 2015-03-03
    • 2018-03-06
    相关资源
    最近更新 更多