我第一次将我的django网站投入生产,所以请原谅我的无知。
我正在尝试将我的django网站放在apache上。我已经阅读了有关mod_wsgi的文档并尝试了这个简单的Hello世界,因此配置好了。我遇到的问题似乎是使用virtualenvs。我想要正确设置包括virtualenvs和所有东西,以便我为未来的网站做好准备。
现在问题。
我在apache日志中遇到的错误是:
No module named django.core.handlers.wsgi
所以它似乎没有正确地阅读我的虚拟语言。
这是我的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
如果您有任何建议或已有类似问题,请提供帮助。
由于
答案 0 :(得分:3)
您尚未将实际的virtualenv site-packages目录添加到组合中。尝试:
import site
site.addsitedir('/path/to/your/virtualenv/lib/python2.X/site-packages')
# Where `X` is the specific version
答案 1 :(得分:2)
对于任何可能遇到类似问题的人。您需要检查存储virtualenv的目录的完整路径权限。
我检查了主目录并更改了权限,但忘记将权限更改为我的用户目录并修复了该权限。
希望这有帮助。