2015-01-29 13 views
10

Sanırım bir şeyleri berbat ettim. Django uygulamamda (üretim aşaması) büyük bir güncellemeyi zorladım ve alanıma gitmeye çalıştığımda "Dahili Sunucu Hatası" alıyorum. Benim uwsgi günlüklere bir hata alıyorum:Django Uygulaması Yanlış Yapılandırıldı - Uygulama modülünün birden fazla dosya sistemi konumu var

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

Ben 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. neler olduğunu tarafından hiçbir fikrim yok. Ben kod önceki bir sürümünü ödeme çalıştığınızda,

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', 
) 

Son olarak:

İşte benim settings.py dosyasıdır. Bende aynı sorunları yaşıyorum.

düzenleme - ekleme uwsgi.conf dosyası, uwsgi hatası olacağını neden sadece Django projesini güncellenen gibi ben bilmiyorum rağmen

# 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 

.

+0

uWSGI yapılandırmanızı görebilir miyiz? Bir '.ini 'dosya ya da bir şey? Ve senin 'wsgi.py' –

+0

Sorunum Visual Studio'ydu: Bir uygulamayı yeniden adlandırdım, daha sonra taşıdım ve VS tüm klasörleri taşımadı. –

cevap

44

Sorun şu ki, bir __init__.py dosyasını silmiştim. Görünüşe göre, django onları hangi klasörlerin paket olduğunu bilmek için kullanıyor, bu yüzden önemli.

+0

bu kabul edilen cevap olmalı! Aynı sorunu yaşadım ve __init.py dosyasını geri ekledim. Teşekkürler! – Richard

+0

Benzer bir hata yaşadım ve bu benim çözümümün ipucunu verdi, __init.py tanımlı default_app_config = 'app_name.apps.Class_name' ve apps.py ayrıca tanımlanmış sınıfı Class_name (AppConfig): name = 'app_name' Yorum yap default_app_config __init__.py'de – Paullo

1

ledger Uygulamanızdaki hata. Bu özel bir uygulama mı? Django kaynak kodu itibaren

, hata bu uygulama ise, hangi edecek, geçerli bir path niteliği olan bir AppConfig alt sınıf ile yapılandırabilirsiniz, hızlı bir düzeltme olarak _path_from_module(app_module)

# Filesystem path to the application directory eg. 
    # u'/usr/lib/python2.7/dist-packages/django/contrib/admin'. Unicode on 
    # Python 2 and a str on Python 3. 
    if not hasattr(self, 'path'): 
     self.path = self._path_from_module(app_module) 

geliyor hatayı çalıştırmayı durdur. Şimdi daha fazla araştırıyorum.

ledger sizin uygulamanız değilse ve pip veya başka yollarla güncelleştirdiyseniz, bu, eski bir sürümü incelemenin sorunu çözmemesinin nedenini açıklar. Bu uygulamanın eski bir sürümünü depodan (varsa) alın ve bir hata raporu gönderin.

+0

Bu özel bir uygulama. AppConfig'i nasıl sınıflandıracağınıza dair bir örnek gönderir misiniz? Dokümanlara bakıyorum ama hala biraz kafam karıştı. –

+0

Haha! Anladım! \ _ \ _ Init__.py dosyasını sildim. Bunun makinemde ne işe yaradığını ya da niçin yerel olarak çalışacağını bilmiyorum, ama bu düzeltildi. –

+0

İlginç. Init dosyaları, modüllerin yüklenmesi, yapılandırılması, yönetici sitesi vb. Gibi birçok şey için kullanılabilir. Sadece hata yapmak için içinde ne yaptığını görmeye dikkat edin. Yetkilendirilmiş kullanıcı modelinizi destekliyorsa, bunu dağıtmak istemezsiniz! –

İlgili konular