【发布时间】:2014-01-14 13:21:39
【问题描述】:
好的,经过 5-6 小时的尝试,我放弃了。我已经搜索了网络,尝试了所有建议的解决方案,但没有解决我的问题。
目标:在我的 Ubuntu 12.04 VPS 上设置 Django。
问题: /etc/log/apache2/error.log 中的Exception occurred processing WSGI script [...] ImportError: No module named django.core.handlers.wsgi。
尝试的解决方案: 1) 将 site-packages 目录附加到 Django 的 wsgi.py 文件中的 sys 路径,2) 重新安装 mod_wsgi,3) 确保 mod_wsgi 编译为相同安装 Django 时的 Python 版本,4) chmod 777 用于站点包目录。
环境: Ubuntu 12.04 VPS,在 virtualenv 中安装 Django,Python 版本 2.7.3,Django 版本 1.6.1,从 mod_wsgi-3.4.tar.gz 构建的 mod_wsgi。
完整的错误信息:
mod_wsgi (pid=23691): Exception occurred processing WSGI script '/var/www/mySite/djangoSite/djangoSite/wsgi.py'.
Traceback (most recent call last):
File "/var/www/mySite/djangoSite/djangoSite/wsgi.py", line 7, in <module>
import django.core.handlers.wsgi
ImportError: No module named django.core.handlers.wsgi
mod_wsgi (pid=23691): Target WSGI script '/var/www/mySite/djangoSite/djangoSite/wsgi.py' cannot be loaded as Python module.
mod_wsgi (pid=23691): Exception occurred processing WSGI script '/var/www/mySite/djangoSite/djangoSite/wsgi.py'.
Traceback (most recent call last):
File "/var/www/mySite/djangoSite/djangoSite/wsgi.py", line 7, in <module>
import django.core.handlers.wsgi
ImportError: No module named django.core.handlers.wsgi
来自可用站点的配置文件:
<VirtualHost *:80>
ServerAdmin admin@mysite.com
ServerName mysite.com
DocumentRoot /var/www/mysite.com/djangoSite
WSGIDaemonProcess djangoSite python-path=/var/www/mysite.com/djangoSite:~/Envs/myEnv/lib/python2.7/site-packages
WSGIProcessGroup djangoSite
WSGIScriptAlias / /var/www/mysite.com/djangoSite/djangoSite/wsgi.py
Alias /static/ /var/www/mysite.com/djangoSite/static/
<Directory /var/www/mysite.com/djangoSite/static>
Order deny,allow
Allow from all
</Directory>
<Directory /var/www/mysite.com/djangoSite/djangoSite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
wsgi.py:
import os
import sys
sys.path.append('/var/www/mysite.com/djangoSite/')
sys.path.append('/var/www/mysite.com/djangoSite/djangoSite/')
activate_this = '/root/Envs/myenv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
os.environ['DJANGO_SETTINGS_MODULE'] = 'djangoSite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
网站结构
/var/www/
-- mysite.com
-- djangoSite
-- manage.py
-- djangoSite
-- settings.py, wsgi.py etc.
【问题讨论】:
-
你的 Apache 站点 .conf 是什么?
-
我没有对其进行任何修改。
-
不是
apache2.conf,而是你的站点配置,比如<VirtualHost>等。一般位于/etc/apache2/sites-available/<yourdomainname>.conf -
如果您安装了多个 python 版本:您编译 mod_wsgi 的 python 版本是否与您的 virtualenv 的 python 版本匹配?
-
@adityasdarma1:好的。我已经更新了我原来的帖子。
标签: django apache2 ubuntu-12.04 mod-wsgi