В Debian 9 установлены сразу 2 версии Python (из разных веток).
На момент написания заметки они были представлены пакетами python, который соответствует версии 2.7.13 из ветки 2.*; и python3 — версия 3.5.3 из ветки 3.*.
Само собой, по умолчанию используется только какая-то одна из версий, и для Debian это более старая версия 2.7.
Определение установленых версий Python
Чтобы определить, какие версии Python установлены в вашей системе, выполните команды:
python --version
или
python -V
для определения точного номера версии из ветки 2.* (также эта команда показывает, какая версия Python используется в системе по умолчанию) и
python3 --version
или
python3 -V
которая покажет версию третьего Python.
Итак, предположим вы определии, что у вас установлена версия 2.7.13 второго Python, и она же используется как дефолтная.
Изменение версии Python, используемой по умолчанию
Для настройки переключения версий Python воспользуемся подсистемой альтернатив. Выполняем команду
update-alternatives --list python
update-alternatives: ошибка: нет альтернатив для python
Описание ошибки свидетельствует, что в системе нет настроеных для Python альтернатив.
Далее нужно определиться, нужна ли вам возможность переключения между версиями или вы просто хотите изменить используемую по умолчанию версию.
В первом случае мы сначала добавим в качестве альтернативы версию 2. Для этого определим местонахождение её бинарников
ls /usr/bin/python2*
/usr/bin/python2 /usr/bin/python2.7 /usr/bin/python2.7-config /usr/bin/python2-config
А затем установим версию 2.7 в качестве первой альтернативы (внимание, для этой операции требуются root привелегии)
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives: используется /usr/bin/python2.7 для предоставления /usr/bin/python (python) в автоматическом режиме
Последний параметр в этом примере (единица) указывает на приоритет — чем больше цифра, тем он выше.
Далее делаем тоже самое с третьей версией. Определяем местоположение бинарников.
ls /usr/bin/python3*
/usr/bin/python3 /usr/bin/python3.5 /usr/bin/python3.5m /usr/bin/python3m
И добавляем версию в список альтернатив.
update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
update-alternatives: используется /usr/bin/python3.5 для предоставления /usr/bin/python (python) в автоматическом режиме
Если вы не планируете использовать вторую версию Python, то этап её добавления в таблицу альтернатив можно пропустить.
После этого команда python -V должна вернуть версию 3.5.3, что означает, что по умолчанию в системе используется третья версия Python.
Выполним повторно
update-alternatives --list python
/usr/bin/python2.7
/usr/bin/python3.5
и убедимся, что теперь у нас в системе в качестве альтернатив установлены две версии Python.
С этого момента мы в любое время можем переключиться на нужную версию с помощью команды
update-alternatives --config python
Есть 2 варианта для альтернативы python (предоставляет /usr/bin/python).
Выбор Путь Приор Состояние
------------------------------------------------------------
* 0 /usr/bin/python3.5 2 автоматический режим
1 /usr/bin/python2.7 1 ручной режим
2 /usr/bin/python3.5 2 ручной режим
Press <enter> to keep the current choice[*], or type selection number: