2011-08-02 12 views
1

私はSnow Leopardにapache + mod_wsgi + djangoを設定しようとしましたが、以下のようなエラーが出ました。私は見つけることができるWeb上のすべてのチュートリアルに従おうとしましたが、それでも動作させることができませんでした:(私はすべてのパスがsys.pathに追加されますが、なぜインポートエラーがあったのかわかりません)Snow Leopard:Apache + mod_wsgi + djangoの問題

ここ
<VirtualHost *:80> 
    WSGIDaemonProcess localdjango processes=2 threads=15 display-name=%{GROUP} 
    WSGIProcessGroup localdjango 

    ServerName localdjango 

    WSGIScriptAlias//Users/kyle/wsgi_source/django-tutorial/mysite/apache/django.wsgi 
    <Directory /Users/kyle/wsgi_source/django-tutorial/mysite/apache> 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

1 import sys 
    2 import os 
    3 
    4 sys.path.append('/Users/eookoo/wsgi_source/django-tutorial') 
    5 
    6 os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 
    7 
    8 import django.core.handlers.wsgi 
    9 application = django.core.handlers.wsgi.WSGIHandler() 

おかげで/Users/kyle/wsgi_source/django-tutorial/mysite/apache/django.wsgiである:ここで

[Tue Aug 02 14:47:36 2011] [error] [client 127.0.0.1]  import django.core.handlers.wsgi 

[Tue Aug 02 14:47:36 2011] [error] [client 127.0.0.1] ImportError: No module named django.core.handlers.wsgi 

[Tue Aug 02 14:47:36 2011] [error] [client 127.0.0.1] mod_wsgi (pid=4333): Target WSGI script '/Users/kyle/wsgi_source/django-tutorial/mysite/apache/django.wsgi' cannot be loaded as Python module. 

[Tue Aug 02 14:47:36 2011] [error] [client 127.0.0.1] mod_wsgi (pid=4333): Exception occurred processing WSGI script '/Users/kyle/wsgi_source/django-tutorial/mysite/apache/django.wsgi'. 

[Tue Aug 02 14:47:36 2011] [error] [client 127.0.0.1] Traceback (most recent call last): 

[Tue Aug 02 14:47:36 2011] [error] [client 127.0.0.1] File "/Users/kyle/wsgi_source/django-tutorial/mysite/apache/django.wsgi", line 8, in <module> 

[Tue Aug 02 14:47:36 2011] [error] [client 127.0.0.1]  import django.core.handlers.wsgi 

[Tue Aug 02 14:47:36 2011] [error] [client 127.0.0.1] ImportError: No module named django.core.handlers.wsgi 

は、Apacheの設定ファイルであります前もって

答えて

1

オペレーティングシステムで提供されているPythonを使用しているかどうかを知るためには、インポートが必要です。

これがシステム上の唯一のPythonバージョンであれば、Djangoはインストールされていません。つまり、Python仮想環境を使用している場合、Python仮想環境を使用するためにWSGIスクリプトファイルまたはmod_wsgiを設定していません。

別のPythonバージョンをインストールしていてDjangoがインストールされている場合、おそらくmod_wsgiがあなたのバージョンではなくシステムのPythonバージョンに対してコンパイルされている可能性があります。

後者の代わりに、mod_wsgiが別のPythonバージョンに対してコンパイルされていても、MacOS Xが正しく動作しなくても実行時にフレームワークリンクを引き起こすPythonインストールで発生する問題が発生していることです。システム全体のPythonフレームワークを使用しています。この後者の場合、別のPythonバージョンに対してmod_wsgiを再構築する必要がありますが、今回はmod_wsgiの 'configure'スクリプトをビルドする前に '--disable-framework'オプションを使用してください。 mod_wsgiのためのMacOS Xの問題に関する一般的なリソースについては

、であなたはドキュメントを読んで確認してください:あなたは、あなたのデフォルトのPythonパスにジャンゴをインストールしていない

http://code.google.com/p/modwsgi/wiki/InstallationOnMacOSX

+0

お返事ありがとうございます。私が使用しているPythonは、OSが提供するバージョン(2.6.5)、mod_wsgi.so(MacOS X 10.6上でAppleがApacheとPythonを提供し、ディレクトリにコピーする:/ usr/libexec/apache2)が既にコンパイルされているので単純にlibexec/apache2 /にコピーします。 mod_wsgi.soをコンパイルしようとしましたが、それでも動作しません。 – kyle

+0

Djangoを正しい場所にインストールすることはできません。コマンドラインのPythonから 'import django; print django .__ file__ 'となります。何が出力されますか? –

+0

正しい場所にインストールする必要があります。../ライブラリ/ Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/__ init __。pyc – kyle