У меня проблемы с получением Apache / WSGI для использования моего VirtualEnv. Я добавил следующие две строки (путь на сервере указывает на фактическое расположение пакетов сайта в целевом virtualenv) в мой файл WSGI:
import site
site.addsitedir('/sites/mysite/virtpy/lib/python2.6/site-packages')
(из http://www.foxhop.net/django-virtualenv-apache-mod_wsgi). Однако, когда я пытаюсь загрузить URL в браузере, я получаю 500. Проверка логов apache:
[Sun Jul 17 11:07:11 2011] [error] [client 94.170.105.142] app = import_module(appname)
[Sun Jul 17 11:07:11 2011] [error] [client 94.170.105.142] File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py", line 35, in import_module
[Sun Jul 17 11:07:11 2011] [error] [client 94.170.105.142] __import__(name)
[Sun Jul 17 11:07:11 2011] [error] [client 94.170.105.142] TemplateSyntaxError: Caught ImportError while rendering: No module named tagging
[Sun Jul 17 11:07:11 2011] [debug] mod_deflate.c(615): [client 94.170.105.142] Zlib: Compressed 629 to 387 : URL /
Итак, я думаю, что VirtualEnv не загружается. Кто-нибудь знает, как сказать Apache / WSGI правильный virtualenv для использования?
UPDATE
Я обновил django.wsgi по совету Кена, но теперь я получаю следующую ошибку в журнале apache
[Sun Jul 17 16:46:36 2011] [info] [client 94.170.105.142] mod_wsgi (pid=11260, process='', application='igniteflow-django.com:8090|'): Loading WSGI script '/sites/igniteflow/apache/django.wsgi'.
[Sun Jul 17 16:46:36 2011] [error] [client 94.170.105.142] mod_wsgi (pid=11260): Target WSGI script '/sites/igniteflow/apache/django.wsgi' cannot be loaded as Python module.
[Sun Jul 17 16:46:36 2011] [error] [client 94.170.105.142] mod_wsgi (pid=11260): Exception occurred processing WSGI script '/sites/igniteflow/apache/django.wsgi'.
[Sun Jul 17 16:46:36 2011] [error] [client 94.170.106.142] Traceback (most recent call last):
[Sun Jul 17 16:46:36 2011] [error] [client 94.170.105.142] File "/sites/igniteflow/apache/django.wsgi", line 5, in <module>
[Sun Jul 17 16:46:36 2011] [error] [client 94.170.105.142] execfile(activate_this, dict(__file__=activate_this))
[Sun Jul 17 16:46:36 2011] [error] [client 94.170.105.142] IOError: [Errno 13] Permission denied: '/root/.virtualenvs/igniteflow/bin/activate_this.py'
Я полагаю, это потому, что virtualenv находится в корне, а у apache нет разрешений? Я разбил папку на root: www-data, но это не устранило проблему. Есть предложения?