Смена версии Python по умолчанию
by hackprime
Не всегда между старшей и младшей версиями какого-либо программного продукта есть обратная совместимость. Если под одной версией работает нормально, то под другой может и не заработать вовсе.
С подобной проблемой я как раз и столкнулся. Django для своей работы требовал Python 2.6, однако в ubuntu по умолчанию стоит Python 2.7. Казалось бы, ничего сложного, доствь 2.6 и всё ок. Но нет. Даже поставив рядом 2.6 Django всё равно брал версию, которая стоит по умолчанию, т.е. 2.7. Выход из данной ситуации простой — понизить версию питона ручками. Итак, поехали:
1) Открываем с правами рута файл /usr/share/python/debian_defaults и меняем версию по умолчанию на python2.6.
2) Далее, в директории /usr/bin/ ищем файл python и переименовываем его:
$ sudo mv /usr/bin/python /usr/bin/python27
Примечание: именно переименовываем, а не удаляем, т.к. в будущем он может пригодиться.
3) В той же директории создаём символьную ссылку на исполняемый файл Python 2.6 с именем python (как изначально и было).
$ sudo ln -s /usr/bin/python2.6 /usr/bin/python
4) Перезагружаемся.
Теперь по умолчанию используется Python 2.6.
PS:
После понижения версии Python могут перестать работать некоторые приложения (например у меня после понижения отказался работать установщик проприетарных драйверов Jockey), которые настроены так, чтобы использовать версию Python по умолчанию, и если версия python по умолчанию их не удовлетворяет — они не работают. Лечится это тем же способом, но только наоборот. Поэму неиспользуемые символьные ссылки на python лучше не удалять. И ещё: при понижении версии, все модули, поставленные через PIP, придётся устанавливать заново.
Источники: