2017-08-12 118 views
0

我要在虛擬主機的ubuntu服務器上設置一個django應用程序。
我配置了我的虛擬主機,以便出現一些東西!
但它仍然存在上給我,因爲有些問題500內部錯誤,你在這裏看到:關於wsgi.py中的wsgi模塊的Ubuntu 16.04服務器錯誤

mod_wsgi (pid=31972): Target WSGI script '/var/www/mmcba/mmemp/wsgi.py' cannot be loaded as Python module. 
mod_wsgi (pid=31972): Exception occurred processing WSGI script '/var/www/mmcba/mmemp/wsgi.py'. 
Traceback (most recent call last): 
    File "/var/www/mmcba/mmemp/wsgi.py", line 25, in <module> 
    application = django.core.handlers.wsgi.WSGIHandler() 
    File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/wsgi.py", line 151, in __init__ 
    self.load_middleware() 
    File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 80, in load_middleware 
    middleware = import_string(middleware_path) 
    File "/usr/local/lib/python3.5/dist-packages/django/utils/module_loading.py", line 20, in import_string 
    module = import_module(module_path) 
    File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
    File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "/usr/local/lib/python3.5/dist-packages/django/contrib/auth/middleware.py", line 4, in <module> 
    from django.contrib.auth.backends import RemoteUserBackend 
    File "/usr/local/lib/python3.5/dist-packages/django/contrib/auth/backends.py", line 4, in <module> 
    from django.contrib.auth.models import Permission 
    File "/usr/local/lib/python3.5/dist-packages/django/contrib/auth/models.py", line 4, in <module> 
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager 
    File "/usr/local/lib/python3.5/dist-packages/django/contrib/auth/base_user.py", line 52, in <module> 
    class AbstractBaseUser(models.Model): 
    File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 110, in __new__ 
    app_config = apps.get_containing_app_config(module) 
    File "/usr/local/lib/python3.5/dist-packages/django/apps/registry.py", line 247, in get_containing_app_config 
    self.check_apps_ready() 
    File "/usr/local/lib/python3.5/dist-packages/django/apps/registry.py", line 125, in check_apps_ready 
    raise AppRegistryNotReady("Apps aren't loaded yet.") 
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 

我真的很感謝您的答覆


更新#2

如果我使用此代碼在我的wsgi.py:

import os 

from django.core.wsgi import get_wsgi_application 

os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' 
application = get_wsgi_application() 

堆棧跟蹤將成爲此:(mmemp是我的應用程序的名稱):

mod_wsgi (pid=5579): Target WSGI script '/var/www/mmcba/mmemp/wsgi.py' cannot be loaded as Python module. 
mod_wsgi (pid=5579): Exception occurred processing WSGI script '/var/www/mmcba/mmemp/wsgi.py'. 
Traceback (most recent call last): 
    File "/var/www/mmcba/mmemp/wsgi.py", line 16, in <module> 
    application = get_wsgi_application() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/wsgi.py", line 13, in get_wsgi_application 
    django.setup(set_prefix=False) 
    File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 22, in setup 
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
    File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 56, in __getattr__ 
    self._setup(name) 
    File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 41, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 110, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
ImportError: No module named mmemp.settings 

我的虛擬主機配置,這就是:

Listen 80 

NameVirtualHost 148.251.218.202:80 

<VirtualHost *:80> 
     ServerAdmin [email protected] 
     ServerName mmcba.com 
     ServerAlias www.mmcba.com 

     WSGIScriptAlias//var/www/mmcba/mmemp/wsgi.py 

     <Directory /var/www/mmcba/mmemp> 
     <Files wsgi.py> 
     Require all granted 
     </Files> 
     </Directory> 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

</VirtualHost> 
+0

着Django的版本,您使用的是適用於每一個未知的模塊中您的應用程序? – akhilsp

+0

Django 1.10使用Python 3.5.2 – Arshamnm

+0

顯示您正在使用的mod_wsgi配置。它看起來並不像你告訴mod_wsgi你項目所在的位置。 –

回答

1

解決方案:
將項目和應用程序目錄添加到wsgi.py中的sys.path,它會工作。

import sys 
sys.path.append('<Project_Directory>') 
sys.path.append('<Project_Directory>/AppName') 
1

如果你使用Django 1.7+做這個替換您的wsgi.py的內容:

import os 

from django.core.wsgi import get_wsgi_application 

os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' 
application = get_wsgi_application() 

或嘗試添加以下行settings.py

import django 
django.setup() 

還有一個類似的問題here。希望能幫助到你。

+0

謝謝,但它不是工作我在我的問題的底部插入了新的堆棧跟蹤 – Arshamnm

+0

該項目是否在您的本地計算機上工作?還請檢查您的應用程序目錄(mmemp)中是否有__init __。py'文件 – akhilsp

+0

當然,它的工作原理一個魅力!是啊有一個:( – Arshamnm

相關問題