В операционной системе Linux, основанной на Debian (Debian, Ubuntu, Mint, Kali и т.д.), может быть установлено несколько версий python. Вы можете запустить команду ls
чтобы посмотреть версии, установленные на вашей системе:
$ ls /usr/bin/python* /usr/bin/python /usr/bin/python2 /usr/bin/python2.7 /usr/bin/python3 /usr/bin/python3.8 /usr/bin/python3.8m /usr/bin/python3m
Чтобы проверить, какая версия python используется по умолчанию, выполните:
$ python --version Python 2.7.8
Изменение версии python для отдельных пользователей
Чтобы изменить версию python для отдельного пользователя, просто создайте alias
для домашней директории пользователя. Откройте файл ~/.bashrc
и добавьте новый alias чтобы изменить путь к исполняемому файлу python по умолчанию:
alias python='/usr/bin/python3.8'
После внесения изменений перелогиньтесь или перечитайте файл .bashrc
:
$ . ~/.bashrc
Проверьте версию python по умолчанию:
$ python --version Python 3.8.5
Если вы используете не bash, а другую оболочку, внесите алиас в соответствующий .rc-файл.
Изменение версии python для всей системы
Чтобы изменить версию python для всей системы, можно использовать команду update-alternatives
. Залогиньтесь как пользователь root (или используйте sudo c далее описанными командами) и выведите список доступных альтернатив python на вашей системе:
# update-alternatives --list python update-alternatives: error: no alternatives for python
Сообщение выше означает, что команда update-alternatives
не распознает альтернативы python. Нужно обновить таблицу альтернатив для команды python, включая все имеющиеся в системе версии, например, python2.7
и python3.8
:
# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode # update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2 update-alternatives: using /usr/bin/python3.8 to provide /usr/bin/python (python) in auto mode
Ключ --install
принимает несколько аргументов, из которых может сделать символическую ссылку. Последний аргумент обозначает приоритет и, если вручную не указано, альтернатива с большим числом будет использована по умолчанию. В данном случае, мы указали приоритет 2 для /usr/bin/python3.8
и, как результат, /usr/bin/python3.8
был автоматически установлен командой update-alternatives
как основной python.
# python --version Python 3.8.5
Далее, можно вывести список всех альтернатив python:
# update-alternatives --list python /usr/bin/python2.7 /usr/bin/python3.8
Теперь, в любое время, можно переключаться между альтернативами введя ниже указанную команду и вводя номер строки с альтернативой:
# update-alternatives --config python
# python --version Python 2.7.8
В случае, если из системы будет удалена одна из версий python, её можно будет удалить из листинга update-alternatives
. Например, удалим версию python2.7:
# update-alternatives --remove python /usr/bin/python2.7 update-alternatives: removing manually selected alternative - switching python to auto mode update-alternatives: using /usr/bin/python3.8 to provide /usr/bin/python (python) in auto mode