我想我真的把事情搞砸了.在我的Django应用程序(生产应用程序)上,我推送了一个重大更新,每当我试图访问我的域时都会收到"内部服务器错误".我的uwsgi日志(log)中出现错误:

*** Starting uWSGI 2.0.8 (64bit) on [Thu Jan 29 00:36:43 2015] ***
compiled with version: 4.8.2 on 11 December 2014 17:29:38
os: Linux-3.13.0-41-generic #70-Ubuntu SMP Tue Nov 25 14:40:34 UTC 2014
nodename: ip-172-31-9-208
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
chdir() to /home/ubuntu/web/app
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 15922
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /home/ubuntu/web/ppuwsgi.sock fd 3
Python version: 3.4.0 (default, Apr 11 2014, 13:08:40)  [GCC 4.8.2]
Set PythonHome to /home/ubuntu/.virtualenvs/pennypledge
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0xb57780
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72768 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
added /home/ubuntu/web/ to pythonpath.
Traceback (most recent call last):
  File "/home/ubuntu/.virtualenvs/pennypledge/lib/python3.4/site-packages/django/apps/config.py", line 104, in create
    entry = module.default_app_config
AttributeError: 'module' object has no attribute 'default_app_config'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./pennypledge/wsgi.py", line 14, in <module>
    application = get_wsgi_application()
  File "/home/ubuntu/.virtualenvs/pennypledge/lib/python3.4/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
    django.setup()
  File "/home/ubuntu/.virtualenvs/pennypledge/lib/python3.4/site-packages/django/__init__.py", line 21, in setup 
    apps.populate(settings.INSTALLED_APPS)
  File "/home/ubuntu/.virtualenvs/pennypledge/lib/python3.4/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
 File "/home/ubuntu/.virtualenvs/pennypledge/lib/python3.4/site-packages/django/apps/config.py", line 107, in create
    return cls(entry, module)
  File "/home/ubuntu/.virtualenvs/pennypledge/lib/python3.4/site-packages/django/apps/config.py", line 41, in __init__
    self.path = self._path_from_module(app_module)
  File "/home/ubuntu/.virtualenvs/pennypledge/lib/python3.4/site-packages/django/apps/config.py", line 70, in _path_from_module
    "with a 'path' class attribute." % (module, paths))
django.core.exceptions.ImproperlyConfigured: The app module <module 'ledger' (namespace)> has multiple filesystem locations (['./ledger', '/home/ubuntu/web/app/ledger']); you must configure this app with an AppConfig subclass with a 'path' class attribute.
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 8549, cores: 1)
--- no python application found, check your startup logs for errors ---
[pid: 8549|app: -1|req: -1/1] 71.195.197.2 () {42 vars in 828 bytes} [Wed Jan 28 17:36:54 2015] GET / => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)
--- no python application found, check your startup logs for errors ---
[pid: 8549|app: -1|req: -1/2] 71.195.197.2 () {42 vars in 814 bytes} [Wed Jan 28 17:36:56 2015] GET /favicon.ico => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (1 switches on core 0)
--- no python application found, check your startup logs for errors ---
[pid: 8549|app: -1|req: -1/3] 71.195.197.2 () {38 vars in 640 bytes} [Wed Jan 28 17:37:09 2015] GET / => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (1 switches on core 0)
--- no python application found, check your startup logs for errors ---
[pid: 8549|app: -1|req: -1/4] 162.243.163.123 () {40 vars in 751 bytes} [Wed Jan 28 17:37:09 2015] GET /favicon.ico => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (1 switches on core 0)
--- no python application found, check your startup logs for errors ---
[pid: 8549|app: -1|req: -1/5] 71.195.197.2 () {40 vars in 748 bytes} [Wed Jan 28 17:37:10 2015] GET /favicon.ico => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (1 switches on core 0)
--- no python application found, check your startup logs for errors ---
[pid: 8549|app: -1|req: -1/6] 71.195.197.2 () {38 vars in 591 bytes} [Wed Jan 28 17:37:11 2015] GET /favicon.ico => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)

我不知道发生了什么:The app module <module 'ledger' (namespace)> has multiple filesystem locations (['./ledger', '/home/ubuntu/web/app/ledger']); you must configure this app with an AppConfig subclass with a 'path' class attribute..

这是我的设置.py文件:

DEBUG = True
TEMPLATE_DEBUG = DEBUG


# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '<SECRET_KEY>'


ALLOWED_HOSTS = ['.example.com','.example2.com']


# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'ledger',
    'extension',
    'plugin',
    'emailmanager',
    'bookmarklet',
    'social.apps.django_app.default',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'pennypledge.urls'

WSGI_APPLICATION = 'pennypledge.wsgi.application'

AUTH_USER_MODEL = 'ledger.User'


DATABASES = {
    'default': {
        'ENGINE': 'postgresql_psycopg2', 
        'NAME': 'database',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

# Internationalization
# https://docs.djangoproject.com/en/1.6/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'MST'

USE_I18N = True

USE_L10N = True

USE_TZ = False #I don't think we care about TZ's. If we do then we need to change the deleting of transaction code.


STATIC_URL = '/static/'

STATICFILES_DIRS = (
    'C:/pennypledge/pennypledge/static/',
    '/Users/croberts/pennypledge/static/',
)

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.debug',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'django.core.context_processors.static',
    'django.core.context_processors.tz',
    'django.contrib.messages.context_processors.messages',
    'social.apps.django_app.context_processors.backends',
    'social.apps.django_app.context_processors.login_redirect',
)

AUTHENTICATION_BACKENDS = (
    'social.backends.facebook.FacebookOAuth2',
    'ledger.custom_social_auth.YoutubeOAuth2',
    'social.backends.twitter.TwitterOAuth',
    'django.contrib.auth.backends.ModelBackend',
)

最后,当我try 签出以前版本的代码时.我也有同样的问题.

edit - adding uwsgi.conf file

# file: /etc/init/ppuwsgi.conf 
description "uWSGI server for PennyPledge"

start on runlevel [2345]
stop on runlevel [!2345]

respawn
exec /usr/local/bin/uwsgi --home /home/ubuntu/web/app/ --socket /home/ubuntu/web/ppuwsgi.sock --chmod-socket=666 --module=pennypledge.wsgi --pythonpath /home/ubuntu/web/ -H /home/ubuntu/.virtualenvs/pennypledge --logto /home/ubuntu/web/logs/uwsgi.log --chdir=/home/ubuntu/web/app --chmod-socket=666

我不知道为什么这个问题会是uwsgi的错,因为我只更新了django项目.

推荐答案

问题是我删除了一个__init__.py的文件.显然,Django使用它们来知道哪些文件夹是apps,所以它们有点重要.

Django相关问答推荐

Django mods.py我想要一个函数转到一个变量

Django为不同应用程序发出信号

如何显示;Django认证系统;在模板中?

无法在views.py django中验证密码

Django中的InvalidOperation错误[]

无法迁移,模型中的外键导致了问题

Django 注释(),计数()

Django获取具有值的相关对象的计数并将其添加到注释中

data._mutable= 在 Django REST 框架中为真

未为部署的 django rest 框架加载静态文件

Django:如何在表单 clean() 方法的 django 验证错误中添加 超链接?

Django判断字段是否为空?

Django SMTPAuthenticationError

Django:如何从模板调用视图函数?

base.html 中的 Django 变量

django 表单为关键字参数获取了多个值

如何在 Django 中执行批量插入?

Django中GROUP BY中注释的聚合

在 Python 中生成 API KEY 和 SECRET 的最简单和最安全的方法是什么

何时使用 Django get_absolute_url() 方法?