Как сделать команду «python» выполнить команду Python 3?

Программа python запускает Python 2. Python 3 может быть выполнен с помощью команды python3. Как выполнить Python 3 с помощью команды python?

212 голосов | спросил Giri 17 J000000Wednesday13 2013, 12:04:27

8 ответов


249

Простым безопасным способом было бы использовать псевдоним. Поместите это в файл ~/.bashrc или ~/.bash_aliases:

 alias python=python3

После добавления вышеуказанного в файл выполните следующую команду:

 source ~/.bash_aliases or source ~/.bashrc

Например:

 $ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3

Чтобы обойти псевдоним, используйте команду command:

 $ command python --version
Python 2.7.6

Чтобы отключить псевдоним в текущей оболочке, используйте встроенную команду unalias:

 $ unalias python
$ python --version
Python 2.7.6
ответил Radu Rădeanu 17 J000000Wednesday13 2013, 12:13:31
66

[Июнь 2016] Рекомендуемое место для информации о переходе является официальным Ubuntu Python .


Из Ubuntu wiki :

  

Для 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 python

вместо

#!/usr/bin/python3

Я бы порекомендовал использовать в сценариях #!/usr/bin/python3 (или #!/usr/bin/env python3) для более простой кросс-совместимости.

Использование env приятно для смешанного использования с виртуальными средами.

ответил Kevin 2 J0000006Europe/Moscow 2014, 20:31:47
6

Обновление: это неправильный способ, я узнал, поскольку Python2 и Python3 не являются взаимозаменяемыми.

Вы можете попробовать инструмент командной строки update-alternatives .

$ sudo update-alternatives --config python

Если вы получите ошибку «нет альтернатив для python», тогда настройте альтернативу со следующей командой:

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Измените путь /usr/bin/python3 на нужную версию python соответственно.

ответил webwurst 4 Maypm14 2014, 18:03:33
2

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.

ответил Moony 25 MarpmFri, 25 Mar 2016 18:43:01 +03002016-03-25T18:43:01+03:0006 2016, 18:43:01
1

Do

cd ~
gedit .bash_aliases

, то напишите либо

alias python=python3

или

alias python='/usr/bin/python3'

Сохраните файл, закройте терминал и откройте его снова.
Ссылка

ответил Breeze 15 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 15 Sep 2017 21:36:05 +0300 2017, 21:36:05
0

Вы можете использовать update-alternatives для предоставления различных версий программ, которые могут понадобиться в разное время из-за проблем с совместимостью.

Этот ответ Является хорошим примером того, как настроить вещи для одновременного поддержания например, разные версии gcc /g ++.

просто выполните то же самое с python2.7 и python 3.3

ответил dcanelhas 18 +04002013-10-18T17:19:32+04:00312013bEurope/MoscowFri, 18 Oct 2013 17:19:32 +0400 2013, 17:19:32
0
cat > /usr/local/bin/py
#!/usr/bin/dash
python3 "[email protected]"
<CTRL-D>

(если у вас есть разрешение на запись в /usr /local /bin) также

cat > /usr/local/bin/pyi
#!/usr/bin/dash
python3 -i "[email protected]"
<CTRL-D>

, то вы только набираете py (и используете py в #! lines) для выбранного вами python.

ответил John Allsup 16 Jam1000000amSat, 16 Jan 2016 01:57:47 +030016 2016, 01:57:47
0

Вы можете символически привязать /usr/bin/python к python3 с помощью

sudo ln -s /usr/bin/python3 /usr/bin/python

См. другие ответы, почему вы не можете этого делать. Ubuntu 18.04 больше не поставляется с Python 2, поэтому не должно быть слишком плохо.

ответил boris 4 Mayam18 2018, 00:01:28

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132