3

初めて Django サイトを本番環境に置くので、私の無知を許してください。

Django サイトを Apache に配置しようとしています。mod_wsgi に関するドキュメントを読み、その単純な Hello world を試してみたので、問題なく設定されました。私が抱えている問題は、virtualenvs を使用することにあるようです。将来のサイトに備えて、virtualenvs などすべてを適切にセットアップしたいと考えています。

今の問題に。

Apache ログに表示されるエラーは次のとおりです。

No module named django.core.handlers.wsgi

そのため、virtualenvs を適切に読み取っていないようです。

これは私のwsgiスクリプトです:

import os
import sys
import site
site.addsitedir('/home/user/.virtualenvs/myapp/lib/python2.7/site-packages')

path = '/home/user/django/myapp/myapp'
if path not in sys.path:
    sys.path.append(path)

sys.stdout = sys.stderr
print sys.path

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

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

これは apache のエラー ログです。sys.path を出力して、それがどのように見えるかを確認してください。

[Tue Jun 05 14:54:07 2012] [error] ['/usr/lib/python27.zip', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/PIL', '/usr/lib/python2.7/site-packages/setuptools-0.6c11.egg-info', '/home/user/.virtualenvs/myapp/lib/python2.7/site-packages', '/home/user/django/myapp/myapp']
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1] mod_wsgi (pid=1039): Target WSGI script '/srv/http/wsgi_scripts/myapp.wsgi' cannot be loaded as Python module.
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1] mod_wsgi (pid=1039): Exception occurred processing WSGI script '/srv/http/wsgi_scripts/myapp.wsgi'.
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1]   File "/srv/http/wsgi_scripts/myapp.wsgi", line 17, in <module>
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1]     import django.core.handlers.wsgi
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1] ImportError: No module named django.core.handlers.wsgi

提案がある場合、またはすでに同様の問題が発生している場合は、助けてください。

ありがとう

4

2 に答える 2

3

実際の virtualenv site-packages ディレクトリをミックスに追加していません。試す:

import site
site.addsitedir('/path/to/your/virtualenv/lib/python2.X/site-packages')
# Where `X` is the specific version
于 2012-06-05T14:39:50.250 に答える
2

私と同じような問題を抱えている可能性のある人のために。virtualenv が保存されているディレクトリへのパス全体の権限を確認する必要があります。

ホームディレクトリを確認して権限を変更しましたが、権限をユーザーディレクトリに変更するのを忘れていたため、問題は解決しました。

お役に立てれば。

于 2012-06-08T08:42:39.537 に答える