2012-07-04 6 views
0

pythonbrew не получает подобран с помощью mod_wsgi файла конфигурации следующим образом:pythonbrew с mod_wsgi

import os 
import sys 
import site 

site.addsitedir('/home/bharal/.pythonbrew/pythons/Python-2.7.2/lib/python2.7/site-packages') 
sys.path.append ('/home/bharal/public_html/dumpstown') 

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

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

и версию pythonbrew питона я хочу использовать здесь находится:

/домашний /bharal/.pythonbrew/pythons/Python-2.7.2/lib/python2.7/site-packages

и мой pythonbrew установить здесь:

/home/bharal/.pythonbrew/

Как я сказать mod_wsgi использовать этой версии (2.7.2), а не версии питона по умолчанию, который поставляется с убунтом (2.6)?

Когда я запускаю мой сервер, я получаю ошибки следующим образом:

[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] mod_wsgi (pid=18694): Exception occurred processing WSGI script '/home/bharal/public_html/dumpstown/dumpstown/apache/dumpstown.wsgi'. 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/wsgi.py", line 250, in __call__ 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]  self.load_middleware() 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py", line 39, in load_middleware 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]  for middleware_path in settings.MIDDLEWARE_CLASSES: 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] File "/usr/local/lib/python2.6/dist-packages/django/utils/functional.py", line 276, in __getattr__ 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]  self._setup() 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 42, in _setup 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]  self._wrapped = Settings(settings_module) 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 89, in __init__ 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1]  raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e)) 
[Wed Jul 04 02:17:27 2012] [error] [client 127.0.0.1] ImportError: Could not import settings 'dumpstown.settings' (Is it on sys.path?): No module named gravatar.templatetags 

как вы можете видеть из журналов, сервер еще глядя на Python 2.6 !! Зачем? Я начал питон, поэтому, когда i введите python, я вижу, что версия 2.7.2, и все настройки и пакеты, которые мне нужны, являются импортируемыми!

UPDATE, как показано в приведенном ниже ответа, mod_wsgi не ухода который Python я сказать его использовать - в самом деле, я не могу сказать ему, чтобы использовать какой-либо конкретный питон. Единственный способ сделать это - загрузить нескомпилированный файл wsgi, скомпилировать конкретную версию python, которую я хочу, и использовать скомпилированный wsgi.

Посмотрите мой другой вопрос Error: Command failed with rc=65536 python and mod_wsgi на некоторые шаги и ссылки на tutes, если хотите. В конце i не сделал скомпилировать против 2.7 (мой 2.6 был прекрасен, и было слишком сложно получить работу с компилятором pythonbrew)

ответ

1

Эта конкретная ошибка не имеет ничего общего с версией используемого Python. Использование:

sys.path.append ('/ дом/нахур/public_html') sys.path.append ('/ дом/нахур/public_html/dumpstown')

Чтобы получить mod_wsgi использовать конкретный версии, скомпилируйте его из исходного кода с этой версией или найдите бинарный пакет для mod_wsgi, скомпилированный с правильной версией.

Смежные вопросы