В 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: