【发布时间】:2014-09-24 19:25:03
【问题描述】:
我正在尝试在 mod_wsgi 3.3 (Ubuntu 12.04) 上部署我的 Django 应用程序。它不起作用只是因为(较旧的)系统范围的 Django 版本干扰并覆盖了安装在 virtualenv 中的版本。我已检查卸载系统范围的版本可以解决此问题,但我想要两者兼有。
这是我的配置:
/home/user/project/wsgi.py
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
/etc/apache2/sites-enabled/项目
WSGIScriptAlias /project /home/user/project/wsgi.py
WSGIDaemonProcess project python-path=/home/user/project:/home/user/venv/lib/python2.7/site-packages
WSGIProcessGroup project
<Directory /home/user/project>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
这是我在 /var/log/apache2/error.log 中看到的内容:
[Fri Aug 01 16:02:09 2014] [error] [client 127.0.0.1] File "/home/user/project/wsgi.py", line 30, in <module>
[Fri Aug 01 16:02:09 2014] [error] [client 127.0.0.1] from django.core.wsgi import get_wsgi_application
[Fri Aug 01 16:02:09 2014] [error] [client 127.0.0.1] ImportError: No module named wsgi
这是因为全局版本是1.3,没有django.core.wsgi。
virtualenv 版本是 1.7。在 virtualenv 下,Python 会导入正确的 Django 版本。
【问题讨论】:
标签: django apache virtualenv mod-wsgi