Переключение интерпретатора Python, используемого по умолчанию, с версии 2.7 на 3.6 в Ubuntu 18.04
В текущий момент язык Python находится в процессе транзита с версии 2.x на 3.x, что влияет на корректность исполнения приложений, которые рассчитывают на ту или иную версию интерпретатора. Обычно, проблемы нет, если используется среда VirtualEnv, когда вы можете выбрать требуемое окружение при его создании, но приложения, которые выполняются вне VirtualEnv могут рассчитывать на ту или иную версию Python. В данной заметке мы рассмотрим простые шаги, как изменить версию Python, используемую по умолчанию, в Ubuntu Linux 18.04.
Для начала выясните какая версия используется в настоящий момент:
Мы видим, что в настоящее время в системе используется интерпретатор Python версии 2.7. Предположим, что вам требуется python 3.6. Проверьте, что он доступен:
Если в процессе выполнения вышеуказанной команды интерпретатор не найден, используйте apt для его установки:
sudo apt update && sudo apt install python3
Теперь вы можете переключить версию интерпретатора, выполнив команду ln :
sudo ln -sfn /usr/bin/python3.6 /usr/bin/python
Запросите версию python повторно:
Как можно видеть, версия интерпретатор изменена на требуемую. Данное решение полезно, когда в систему устанавливается программное обеспечение из сторонних пакетов, которое рассчитывает на то, что по-умолчанию используется Python версии 3.
На одной рабочей машине одновременно может быть установлено несколько версий Python. Это бывает полезно, когда идет работа с некоторыми внешними библиотеками, которые поддерживают разные версии python, либо в силу каких-то других причин нам надо использовать несколько разных версий. Например, на момент написания статьи последней и актуальной является версия Python 3.11 . Но, допустим, необходимо также установить версию 3.10 , как в этом случае управлять отдельными версиями Python?
Windows
На странице загрузок https://www.python.org/downloads/ мы можем найти ссылку на нужную версию:
И также загрузить ее и установить:
Чтобы при использовании интерпретатора Python не прописывать к нему весь путь, добавим при установке его в переменные среды. Но здесь надо учитывать, что в переменных среды может содержаться несколько путей к разным интерпретаторам Python:
Та версия Python, которая находится выше, будет версией по умолчанию. С помощью кнопки «Вверх» можно нужную нам версию переместить в начало, сделав версией по умолчанию. Например, в моем случае это версия 3.11. Соответственно, если я введу в терминале команду
python --version
или
py --version
то консоль отобразит версию 3.11:
C:\python>python --version Python 3.11.0
Для обращения к версии 3.10 (и всем другим версиям) необходимо использовать указывать номер версии:
C:\python>py -3.10 --version Python 3.10.9
например, выполнение скрипта hello.py с помощью версии 3.10:
Подобным образом можно вызывать и другие версии Python.
MacOS
На MacOS можно установить разные версии, например, загрузив с официального сайта пакет установщика для определенной версии.
Для обращения к определенной версии Python на MacOS указываем явным образом подверсию в формате python3.[номер_подверсии] . Например, у меня установлена версия Python 3.10. Проверим ее версию:
Аналогично обращении к версии python3.9 (при условии если она установлена)
К примеру выполнение скрипта hello.py с помощью версии python 3.10:
Linux
На Linux также можно установить одновременно несколько версий Python. Например, установка версий 3.10 и 3.11:
Одна из версий является версий по умолчанию. И для обращения к ней достаточно прописать python3 , например, проверим версию по умолчанию:
Для обращения к другим версиям надо указывать подверсию:
python3.10 --version python3.11 --version
Например, выполнение скрипта hello с помощью версии Python 3.10:
Но может сложиться ситуация, когда нам надо изменить версию по умолчанию. В этом случае применяется команда update-alternatives для связывания определенной версии Python с командой python3. Например, мы хотим установить в качестве версии по умолчанию Python 3.11. В этом случае последовательно выполним следующие команды:
Числа справа указывают на приоритет/состояние. Так, для версии 3.11 указан больший приоритет, поэтому при обращении к python3 будет использоваться именно версия 3.11 (в моем случае это Python 3.11.0rc1)
Разработчики python не сделали поддержку версий и это не очень хорошо. Появляется ряд проблем, а именно с версиями ПО. Одни утилиты требуют версию 2.7.х, другие 3.4.х. И я хотел бы в своей статье, рассказать как можно использовать несколько версий или переключить версию python в Unix/Linux.
Переключить версию python в Unix/Linux
Сейчас по умолчанию, во многих Unix/Linux ОС используется питон 2.6. Чтобы проверить какая версия питона используется в системе, выполните:
Вышеупомянутые команды будут указывать команде alternatives для создания соответствующих символических ссылок, которые будут использоваться при выполнении команды python. Я назначил python3.6 более высокий приоритет ( цифра 2), — это означает, что если не выбрана альтернатива для python, то по умолчанию будет использоваться python3.6. После выполнения вышеуказанных команд ваша версия python должна измениться на python3.6 из-за ее более высокого приоритета.
Для переключения между вышеперечисленными версиями python теперь достаточно просто: