2016-11-17 23 views
0

しばらくの間、私はdjangoプロジェクトをmodgwsgiで動作するbadgr(badgr-server on github)にインストールしようとしていました。私は私の頭の上にかなりの方法ですが、私はいくつかの進歩を遂げたと信じています。ここで私は、現在取得していますエラーメッセージです:Python 2.7を私のdjangoプロジェクトで使用する場合の問題

[Thu Nov 17 12:48:48.182772 2016] [core:notice] [pid 24556] AH00094: Command line: '/opt/rh/httpd24/root/usr/sbin/httpd' 
    [Thu Nov 17 12:48:50.421089 2016] [:error] [pid 24558] [remote 140.225.0.153:60440] mod_wsgi (pid=24558): Target WSGI script '/opt/badgr/code/apps/mainsite/wsgi.py' cannot be loaded as Python module. 
    [Thu Nov 17 12:48:50.421165 2016] [:error] [pid 24558] [remote 140.225.0.153:60440] mod_wsgi (pid=24558): Exception occurred processing WSGI script '/opt/badgr/code/apps/mainsite/wsgi.py'. 
    [Thu Nov 17 12:48:50.421200 2016] [:error] [pid 24558] [remote 140.225.0.153:60440] Traceback (most recent call last): 
    [Thu Nov 17 12:48:50.421228 2016] [:error] [pid 24558] [remote 140.225.0.153:60440] File "/opt/badgr/code/apps/mainsite/wsgi.py", line 27, in <module> 
    [Thu Nov 17 12:48:50.421348 2016] [:error] [pid 24558] [remote 140.225.0.153:60440]  application = get_wsgi_application() 
    [Thu Nov 17 12:48:50.421374 2016] [:error] [pid 24558] [remote 140.225.0.153:60440] File "/opt/badgr/env/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application 
    [Thu Nov 17 12:48:50.421450 2016] [:error] [pid 24558] [remote 140.225.0.153:60440]  django.setup() 
    [Thu Nov 17 12:48:50.421472 2016] [:error] [pid 24558] [remote 140.225.0.153:60440] File "/opt/badgr/env/lib/python2.7/site-packages/django/__init__.py", line 20, in setup 
    [Thu Nov 17 12:48:50.421558 2016] [:error] [pid 24558] [remote 140.225.0.153:60440]  configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
    [Thu Nov 17 12:48:50.421581 2016] [:error] [pid 24558] [remote 140.225.0.153:60440] File "/opt/badgr/env/lib/python2.7/site-packages/django/conf/__init__.py", line 46, in __getattr__ 
    [Thu Nov 17 12:48:50.421705 2016] [:error] [pid 24558] [remote 140.225.0.153:60440]  self._setup(name) 
    [Thu Nov 17 12:48:50.421728 2016] [:error] [pid 24558] [remote 140.225.0.153:60440] File "/opt/badgr/env/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup 
    [Thu Nov 17 12:48:50.421764 2016] [:error] [pid 24558] [remote 140.225.0.153:60440]  self._wrapped = Settings(settings_module) 
    [Thu Nov 17 12:48:50.421782 2016] [:error] [pid 24558] [remote 140.225.0.153:60440] File "/opt/badgr/env/lib/python2.7/site-packages/django/conf/__init__.py", line 98, in __init__ 
    [Thu Nov 17 12:48:50.421811 2016] [:error] [pid 24558] [remote 140.225.0.153:60440]  % (self.SETTINGS_MODULE, e) 
    [Thu Nov 17 12:48:50.421841 2016] [:error] [pid 24558] [remote 140.225.0.153:60440] ImportError: Could not import settings 'settings' (Is it on sys.path? Is there an import error in the settings file?): No module named settings` 

ここでは私のwsgi.py(/opt/badgr/code/apps/mainsite/wsgi.py)のコピーです:

""" 
    WSGI config for badgr project. 

    It exposes the WSGI callable as a module-level variable named ``application``. 

    For more information on this file, see 
    https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/ 
    """ 

    import sys 
    import os 
    import site 

    activate_this = os.path.expanduser("/opt/badgr/env/bin/activate_this.py") 
    execfile(activate_this, dict(__file__=activate_this)) 

    path = '/opt/badgr/code/apps/mainsite' 
    if path not in sys.path: 
     sys.path.append(path) 

    os.environ["DJANGO_SETTINGS_MODULE"] = 'settings' 

    site.addsitedir('/opt/badgr/env/lib/python2.7/site-packages') 


    from django.core.wsgi import get_wsgi_application 
    application = get_wsgi_application() 

私は設定ファイルが/opt/badgr/code/apps/mainsite/settings.py(または.pyc)であることを確信しています。しかし、それは呼び出されるのに問題があるようです。

また、私は、Python 2.7のENVを実行していますことに留意すべきである:/opt/badgr/env/lib/python2.7/

Finnally:ここに私のDjangoの設定は(は/ opt/httpd24でありますrh/httpd24/root/etc/httpd/conf.d/django.conf):

Alias /static /opt/badgr/code/staticfiles 
    <Directory /opt/badgr/code/staticfiles> 
    Require all granted 
    </Directory> 


    <Directory /opt/badgr/code/apps/mainsite> 
     <Files wsgi.py> 
    Require all granted 
     </Files> 
    </Directory> 

    WSGISocketPrefix /var/run/wsgi/wsgi 
    WSGIDaemonProcess badgr 
    WSGIProcessGroup badgr 
    WSGIPythonPath /opt/badgr:/opt/badgr/env/lib/python2.7/site-packages 
    WSGIScriptAlias//opt/badgr/code/apps/mainsite/wsgi.py 
    WSGIPythonHome /opt/badgr/env 

何か助けや援助をいただければ幸いです。 Apacheの設定については

答えて

0

は、使用してみてください:

Alias /static /opt/badgr/code/staticfiles 
<Directory /opt/badgr/code/staticfiles> 
Require all granted 
</Directory> 

<Directory /opt/badgr/code/apps/mainsite> 
    <Files wsgi.py> 
    Require all granted 
    </Files> 
</Directory> 

WSGISocketPrefix /var/run/wsgi/wsgi 
WSGIRestrictEmbedded On 

WSGIDaemonProcess badge python-home=/opt/badgr/env python-path=/opt/badgr/code/apps 
WSGIProcessGroup badge 

WSGIScriptAlias//opt/badgr/code/apps/mainsite/wsgi.py 

wsgi.pyファイルのために戻って最初に作成されたものと同様であることに、それを元に戻します。

import os 

os.environ["DJANGO_SETTINGS_MODULE"] = 'mainsite.settings' 

from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

WSGIRestrictEmbeddedは、mod_wsgiデーモンモードのみが使用されるようにします。

python-homeオプションを使用してPython仮想環境の場所をWSGIDaemonProcessに設定します。プロジェクトの親ディレクトリをpython-pathに設定します。 DJANGO_SETTINGS_MODULEを変更して、プロジェクト名をモジュールパスに再度含めます。


wsgi.pyファイルに追加UPDATE:

import sys 
print 'SYS.PATH = %r' % sys.path 

はパスが何であるかを見ると、プロジェクトがどこにある上記親ディレクトリことを確認するために、Apacheのエラーログを確認し、ありますリストされている。

+0

上記を試しても同じようなエラーメッセージが表示されたら、私は1つのwsgi.py(/opt/badgr/env/lib/python2.7/site-packages/django/core/wsgi.py)にまとめることにしました。 )ではなく2つの場所で2つ。これは、今何を含むかである: '輸入ジャンゴ 輸入OS デフget_wsgi_application(): django.setup() リターンWSGIHandler() はos.environ [ "DJANGO_SETTINGS_MODULE"] = 'mainsite.settings' からdjango.core.wsgi import get_wsgi_application application = get_wsgi_application() '私が今取得しているエラーはかなり同じです。思考? (新生児には申し訳ありません) – Sesshoumaru

+0

オリジナルの '' wsgi.py''ファイルを使用してください。あなたの周りを変え続けるなら、混乱の原因となります。 '' wsgi.py''ファイルに上記のデバッグを追加します。 –

+0

ありがとう、私は明日これを試し、このコメントを編集するか、結果に基づいて新しいコメントを投稿します。 – Sesshoumaru

関連する問題