Каков правильный способ управления несколькими версиями python?

У меня есть машина с Python 2.6, установленная как Python по умолчанию. Затем я установил Python 2.7 и вручную создал / usr / bin / python в качестве символической ссылки на новую установку.

Затем у меня возникали проблемы с командой-not-found . Я пытаюсь переустановить его:

sudo apt-get remove command-not-found 

и я получаю эту ошибку:

 /usr/bin/python does not match the python default version. It must be reset to point to python2.6 

Но я действительно хочу, чтобы Python 2.7 был по умолчанию. Как исправить этот беспорядок?

Изменение Python по умолчанию (или Perl и т. Д.) В ОС – действительно плохая идея. Этот интерпретатор фактически является частью ОС, и вполне могут быть другие компоненты ОС, которые написаны специально для работы с этой версией интерпретатора.

Например, в Redhat инструмент yum, который выполняет обновления программного обеспечения системы, является приложением python. Вы действительно не хотите нарушать это. Такие приложения могут зависеть от установленных, возможно, нестандартных, модулей python, которые могут быть установлены у установленной версии. Например, на Ubuntu я считаю, что некоторые из встроенных инструментов ОС, написанных на Python, используют ORM под названием Storm, который не является частью стандартной библиотеки Python. У вашей чистой установки Python 2.7 установлена ​​определенная ожидаемая версия модуля Storm? Есть ли у него версия Storm? Нет? Тогда вы только что сломали кусок вашей ОС.

Правильный способ сделать это – установить предпочтительную версию python и настроить свою учетную запись пользователя, чтобы использовать ее, настроив свой .bash_profile, путь и т. Д. Вы также можете посмотреть в модуль virtualenv для Python.

Как исправить этот беспорядок?

Ничего больше, чем переустановка python . Это отменит ваше изменение (символическая ссылка).

Почему вы хотите, чтобы это было по умолчанию? Каждый раз, когда вам это нужно, просто используйте python2.7 или python2.7 #!/usr/bin/python2.7 (shebang) в начале ваших (исполняемых) скриптов.

Если вы настаиваете на том, чтобы python2.7 стандартным по умолчанию, используйте более позднюю версию Ubuntu (в настоящее время это Ubuntu 11.04 под кодовым названием Natty). Он использует эту версию по умолчанию.

В будущем избегайте рутинных вмешательств, например, что вы делали с символикой. Это особенно актуально для файлов, управляемых дистрибутивом, и особенно для сложных зверей, таких как установки Python.

Мы многократно добавляем несколько дистрибутивов python на Mac и Ubuntu, и вот моя рекомендация.

  1. Оставьте систему python без проблем: никогда не используйте ее.

  2. Если вам нужен только один основной дистрибутив python, загрузите и установите Canopy из enthought. Когда он устанавливается, выберите «установить как мой системный python», а затем вы можете установить пакеты из менеджера пакетов GUI Canopy.

    • Canopy также совместим с коробкой с командой pip , командой менеджера пакетов PyPi, которая позволяет вам устанавливать пакеты (например, pip install python-twitter )
  3. Если вы планируете использовать виртуальные среды (т. Е. Разрабатываете программы на языке python и хотите, чтобы для каждого из них была создана отдельная чистая среда python, с простым способом переключения между ними), я бы рекомендовал Anaconda over Canopy из-за его инструмента управления виртуальной средой . Это позволит вам