Назад | Перейти на главную страницу

Как заставить Apache запускать Python 2.7 вместо 2.5?

Как заставить Apache запускать 2.7, а не 2.5?

Я настраиваю Apache для использования mod_wsgi с Django и Python 2.7, но журналы ошибок показывают, что Apache использует Python 2.5.2 и не может найти django.core.handlers.wsgi.

Модуль доступен для оболочек python и django, каждая из которых работает под управлением 2.7, поэтому я думаю, что проблема заключается в версии Apache для python.

Я установил Python 2.7.1 из исходного кода (в системе Debian) и изменил символическую ссылку / usr / bin / python, чтобы она указывала на /usr/local/bin/python2.7, где make install помещает двоичный файл. Оболочки python и django вызывают 2.7.1 (они могут импортировать модуль wsgi).

Возможно, это связано с тем, что когда я переношу символическую ссылку обратно на предыдущую версию (требуется apt-get для некоторых установок), оболочка python все еще появляется 2.7.1. Django этого не делает. Я что-то пропустил в процессе установки?

ОБНОВЛЕНИЕ: Это - https://stackoverflow.com/questions/4186099/django-running-wrong-version - предполагает, что проблема может заключаться в том, что mod_wsgi или mod_python созданы для Python 2.5.

Я пробовал собрать mod_wsgi из исходных кодов, но этот процесс не находил apx, и попытки установить libapache2-dev (как это предлагалось на сайте mod_wsgi) провалили удаляемые зависимости. И я не могу установить mod_wsgi или mod_python через apt-get, не указав Python на значение по умолчанию для debian 2.5. Не знаю, как здесь расстаться.

ОБНОВЛЕНИЕ 2: выберите откат Python до версии 2.5.

Я предполагаю, что Apache переходил на Python 2.5 b / c, он находил mod_wsgi.so-2.5, соответствующий Python 2.5, с включенными модами. Компиляция mod_wsgi могла бы поместить туда модуль .so-2.7, но для этого требовался apache2-dev, а пакет Debian для этого ломал некоторые отсутствующие проблемы с зависимостями, и откат оценил лучшую часть доблести, и никто никогда не позаботится о это или это повторение, но если, любезный читатель, здесь вас привезет какой-то комок с python2.7 + apache, и аннотация этих временных шрамов сэкономит вам мгновение, поднимите за меня стакан. excelsior! спокойной ночи.

ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ: проблема с apache2-dev была решена путем установки через aptitude, а не через apt-get.

Есть ли настоящая причина, по которой вам нужен Python 2.7? Django можно установить для версии 2.5, а пакеты Debian будут содержать исправления, связанные с безопасностью, примененные к python 2.5. Почему бы просто не сохранить все необходимое из репозиториев Debian и не установить Django для версии 2.5? Это избавит вас от необходимости компилировать что-то из исходного кода, упростив установку, а также упростит обновление и обслуживание и с меньшей вероятностью сломается в будущем.


- Кристофер Карел

Является ли / usr / bin / python единственным «исполняемым файлом»?

Что значит

ls -l /usr/bin/python* 

шоу? И

ls -l /usr/bin/X11/python* 

И

type -a python

?