Как заставить 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, так что я думаю, что проблема в версии Python для Apache.
Я установил 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. Джанго нет. Я что-то пропустил в процессе установки?
ОБНОВЛЕНИЕ: Это - https://stackoverflow.com/questions/4186099/django-running-wrong-version - предполагает, что проблема может заключаться в том, что mod_wsgi или mod_python созданы для Python 2.5.
Я пытался собрать mod_wsgi из исходного кода, но этот процесс не находил apxs, и попытки установить libapache2-dev (как это было предложено на сайте mod_wsgi) бомбардировали неустановимые зависимости. И я не могу установить mod_wsgi или mod_python через apt-get, не указав Python по умолчанию для Debian 2.5. Не уверен, как тут расклеиться.
ОБНОВЛЕНИЕ 2: выбрал откат Python до 2.5.
Я предполагаю, что Apache собирался в Python 2.5, потому что он находил mod_wsgi.so-2.5, соответствующий Python 2.5, в модах. Компиляция mod_wsgi могла бы поместить туда модуль.so-2.7, но для этого потребовался apache2-dev, и пакет Debian для этого сломался из-за некоторой проблемы с отсутствующей зависимостью, и откат определил лучшую часть доблести, и никто никогда не будет заботиться о это или это повторное резюме, но если, дорогой читатель, какой-нибудь шарик python2.7 + apache приведет вас сюда, и аннотация этих временных шрамов избавит вас на мгновение, поднимите бокал для меня. эксцельсиор! доброй ночи.
Последнее обновление: проблема apache2-dev была решена путем установки через aptitude, а не через apt-get.
2 ответа
Есть ли реальная причина, по которой вам нужен 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
?