Программная команда python
выполняет Python 2. Python 3 может быть выполнен с помощью команды python3
. Как Python 3 может быть выполнен с помощью команды python
?
Простой безопасный способ - использовать псевдоним. Поместите это в файл ~ / .bashrc
или ~ / .bash_aliases
:
alias python=python3
После добавления вышеуказанного в файл запустите source ~ / .bashrc
или источник ~ / .bash_aliases
.
Например:
$ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3
Для обхода псевдонима используйте команду .
встроенная команда:
$ command python --version
Python 2.7.6
Другой способ обойти псевдоним - используйте \
перед командой.
$ \python --version
Python 2.7.6
Чтобы отключить псевдоним в текущей оболочке, используйте встроенную команду unalias
:
$ unalias python
$ python --version
Python 2.7.6
Сделайте
cd ~
gedit .bash_aliases
, затем напишите либо
alias python=python3
или
alias python='/usr/bin/python3'
Сохраните файл, закройте терминал и откройте его снова.
Ссылка
На Ubuntu 20.04+ вы можете сделать
sudo apt install python-is-python3
Кроме того, вы можете предотвратить установку Python 2 как зависимости от чего-то в будущем с помощью apt-mark hold
:
sudo apt-mark hold python2 python2-minimal python2.7 python2.7-minimal libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib
Вы можете попробовать инструмент командной строки update-alternatives
.
$ sudo update-alternatives --config python
Если вы получаете сообщение об ошибке «Нет альтернатив для python», настройте альтернативу самостоятельно с помощью следующей команды:
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
Измените путь / usr / bin / python3
на желаемый питон версия соответственно.
[июнь 2016] Рекомендуемое место для информация о переходе находится на официальной странице Ubuntu Python .
Из вики Ubuntu :
Как для Ubuntu, так и для Debian, у нас есть текущий проект ставит цель сделать Python 3 предпочтительной версией Python по умолчанию в дистрибутивах.
Что это не означает:
/ usr / bin / python
будет указывать на Python 3. Нет, этого не произойдет (если PEP 394 не выступает за иное, что вызывает сомнения в обозримом будущем)./ usr / bin / python
и/ usr / bin / python2
будут указывать на Python 2.7, а/ usr / bin / python3
будут указывать на последнюю поддерживаемую версию Python. 3.Python 2 будет удален из архива. Нет, этого не произойдет . Мы ожидаем, что Python 2.7 будет оставаться поддерживаемым и доступным в Ubuntu в течение довольно долгого времени, учитывая, что PEP 373 обещает поддержку исправления ошибок в исходной версии до 2020 года.
Не рекомендуется изменять символическую ссылку из-за другие зависимости пакетов, но у них «текущие цели проекта - сделать Python 3 предпочтительной версией Python по умолчанию в дистрибутивах».
Для использования CLI, например @Radu Rădeanu , я бы рекомендовал указать псевдоним в файле пользователя ~ / .bashrc
, .bash_aliases
(различные файлы, включая ~ / .bash_profile
, загружаются хотя бы один раз, в основном для организационных целей, но может отличаться в зависимости от платформы). Виртуальные среды Python также работают хорошо.
Примеры псевдонимов:
alias python=python3
или
alias python='/usr/bin/python3'
Скрипты по-прежнему должны использовать что-то вроде #!/ usr / bin / env python3
для перекрестной совместимости.
Использование env
удобно для смешанного использования с виртуальными средами.
Примечание (благодаря @wjandrea): псевдонимы являются частью среды выполнения bash, а не пользовательской среды. Следовательно, они недоступны для shebang ( #!
). Если вы предпочитаете псевдоним python = python3, то некоторая program.py
без shebang может быть запущена путем вызова интерпретатора с псевдонимом, например, этого python program.py
. Псевдонимы также могут быть полезны для систем с несколькими версиями python3, такими как 3.4 и 3.6 вместе.
Ubuntu и остальная часть В этом отношении дистрибутивы Linux по-прежнему в значительной степени зависят от Python 2.7 для ряда приложений и команд. Если вы измените ссылку по умолчанию «python» на Python 3.x, тогда ряд функций Python начнут выдавать ошибки утверждения.
Например, в Ubuntu, «pip» для одной из них больше не будет работать правильно, если вы напрямую отредактировал файл и изменил shebang на ссылку '#! / usr / bin / env python2.7'. В разновидностях RHEL (Red Hat Enterprise Linux), таких как Red Hat, Fedora и CentOS, команда 'Yum' также зависит от Python 2.7.
Я хочу сказать, что вы могли бы заставить значительный объем кода начать выдавать утверждения ошибки, чтобы вы могли ввести «python» в терминал для ссылки на Python 3.x.
Намного лучше, если вы используете команду python3 в терминале и shebang «#! / Usr / bin / env python3» в ваших файлах Python 3.x.
cat > /usr/local/bin/py << 'EOF'
#!/bin/dash
python3 "$@"
EOF
(при условии, что у вас есть разрешение на запись в / usr / local / bin) аналогично
cat > /usr/local/bin/pyi << 'EOF'
#!/bin/dash
python3 -i "$@"
EOF
, тогда вы набираете только py (и используете py в строках #!) для выбранного вами python.
Я считаю очень полезным просто удалить / usr / bin / python и / usr / bin / pip. Это заставляет все программы полагаться на команды «python2» и «python3».
Хотя работа некоторых необязательных и устаревших пакетов зависит от #! / Usr / bin / python
, я предпочитаю отправлять исправления для этих программ, чем продолжать делать странные, а иногда и трудно поддающиеся отладке ошибки.
Вы можете использовать update-alternatives
для предоставления разных версий программ, которые могут понадобиться в разное время из-за проблем совместимости.
Этот ответ является хорошим примером того, как настроить, например, одновременную поддержку различных версий gcc / g ++.
просто сделать то же самое с python2.7 и python 3.3