Если вы настраиваете виртуальную среду с помощью: «python3 -m venv my-venv», то с любого терминала активируйте эту виртуальную среду, вызвав «source ... / my-env / bin / activ», тогда Python 3.5 будет по умолчанию в этом терминале. Вы можете проверить текущую версию по умолчанию, вызвав "python -V".
Крейг Хикс
пока ваш ответ полезен, я спросил почему. не как. и это большая дискуссия. Вот. почему должна быть более старая версия по умолчанию, а не текущая версия.
Гивонз
1
Вы совершенно правы по поводу моего "комментария"! Вот почему я написал комментарий, а не ответ.
Крейг Хикс
Ответы:
56
Я не знаю, какие «документы» вы читаете, и что они говорят, но /usr/bin/pythonэто просто символическая ссылка на версию Python по умолчанию, в данном случае 2.7, которая является результатом простой печати pythonна терминале. Это результат PEP 394, который определяет, что
на данный момент все дистрибутивы должны гарантировать, что это pythonотносится к той же цели, что иpython2 .
type pythonи file /usr/bin/pythonподтвердит это.
Причиной такого расположения, отличного от соглашения, является то, что исходный пакет python-defaults в Xenial является версией 2.7.11 , поэтому символическая ссылка python указывает на эту версию.
Чтобы использовать Python 3, вы должны быть явным и вводить python3в командной строке, что рекомендуется, если вам нужна конкретная версия, это также можно сделать с помощью Python 2, набрав python2. Ubuntu включает в себя обе версии Python 2 и 3 по умолчанию во всех текущих версиях.
Чтобы получить Python 3.5 REPL или запустить совместимый скрипт, введите python3. Это необходимо для обеспечения совместимости со всем устаревшим Python 2.x (который всегда был и останется связанным с python).
Тир может найти , pythonесли вы создали .desktopфайл для него (в ~/.local/share/applications/), чтобы открыть терминал и запустить REPL, например. Для Python не существует среды GUI REPL по умолчанию, и нормальный интерфейс предполагает, что пользователь пойдет в терминал.
Говорят о том, что python 3.5 по умолчанию используется для сопровождения портирования всех системных скриптов с python 2.x на python 3.x, но не то, что python 3 заменит Python 2 во всех случаях.
Итак, я думаю, правильный вопрос: как мне добавить python3 в мой путь, чтобы он выполнялся автоматически?
Гивонц
ты имеешь в виду, как заставить скрипты Python работать как скомпилированная программа?
Эндрю Кич
понял, спасибо. просто введите python3 в командной строке.
Гивонз
2
AIUI, что делать с / usr / bin / python в долгосрочной перспективе, остается открытым вопросом. Для сценариев python2 лучше всего явным образом использовать python2.
Питер Грин
1
вместо использования #!/usr/bin/python3(или #!/usr/bin/python2) в скриптах, лучше использовать (специально для python), #!/usr/bin/env python3если вы хотите, чтобы он был удаленно переносимым. По большей части это просто документация, так как во многих случаях она все равно будет вызываться с использованием $ python3 your_pyprogram.py.
Майкл
4
Вы предполагаете, что Python по умолчанию должен быть доступен как python. Это предположение неверно.
В системе, которая поставляется с «предварительно загруженным» Python 3 и вообще без Python 2, будет только python3и нет python.
Код, написанный для Python 3, всегда должен искать вызываемого интерпретатора python3. Код, написанный для Python 2, будет исторически искать python.
Может наступить момент времени, возможно, десятилетия спустя, когда почти никто не помнит Python 2, когда, pythonвозможно, начнут ссылаться python3. Это было бы чисто для удобства, и может и не должно быть сделано преждевременно, если вообще! Там нет спешки, из-за следующего воздействия:
«Старые» системы не будут знать python2только о них python, поэтому имеет смысл продолжать искать код Python 2 python. Это причина, почему pythonследует ссылаться на Python 2 «пока существует код Python 2».
Новый код, написанный для Python 2, если это имеет смысл, может прекрасно выглядеть python. Он также может искать python2, если он предназначен для работы только на Python 3, хорошо осведомленных и ухоженных системах (которые должны предлагать такую ссылку).
Преимущество использования кода на Python 2 python2состоит в том, что он не нуждается в дополнительных прикосновениях, как только pythonначинает ссылаться на то python3, что может никогда не произойти или когда-то pythonвообще исчезнет, что может произойти или не произойти. (Это может стать реальностью, если код Python 2 исчезнет после того, как гипотетический Python 4 станет популярным у его интерпретатора python4. - Потому что позволить ему указывать либо на то, python3либо на python4оба, и это может сбить с толку.)
как вы набираете одну и ту же команду и получаете 2 разных результата?
Гивонц
4
другой вывод от второго вызова python- от использования <tab>для запроса автозаполнения, который затем выводит возможные перестановки python*и возвращает вас в новое приглашение.
Эндрю Кич
@givonz, хм, я использовал клавишу TAB, братан. его не выводится. это возможно бинарный паттерн.
16:27
Отрицательный голос за что?
16:16
2
Я не понизил голос, но я думаю, что ответ должен объяснить, почему два первых выхода отличаются и какова роль apt-cache, особенно для начинающих пользователей Ubuntu.
AL
2
Python 3.x должен работать с 16.04 - на самом деле, он точно будет работать. У меня Ubuntu 14.04 и Python 3.4.3 - все, что вам нужно сделать, чтобы проверить его, это ввести текст, python3и он должен сказать вам, какую версию вы используете.
Ну, я бы не стал называть компьютерную науку ОС. И, строго говоря, Ubuntu - это ОС на базе Linux, а не на основе Unix.
magu_
мне еще предстоит понять diff bet linux & unix, кроме некоторых командных команд и других, но тесно сформулированных команд. хотя графический интерфейс намного более продвинутый, чем то, что я вижу в солярисе.
Ответы:
Я не знаю, какие «документы» вы читаете, и что они говорят, но
/usr/bin/python
это просто символическая ссылка на версию Python по умолчанию, в данном случае 2.7, которая является результатом простой печатиpython
на терминале. Это результат PEP 394, который определяет, чтоtype python
иfile /usr/bin/python
подтвердит это.Причиной такого расположения, отличного от соглашения, является то, что исходный пакет python-defaults в Xenial является версией 2.7.11 , поэтому символическая ссылка python указывает на эту версию.
Чтобы использовать Python 3, вы должны быть явным и вводить
python3
в командной строке, что рекомендуется, если вам нужна конкретная версия, это также можно сделать с помощью Python 2, набравpython2
. Ubuntu включает в себя обе версии Python 2 и 3 по умолчанию во всех текущих версиях.Есть планы перенести все на Python 3 и пометить его как значение по умолчанию.
источник
Чтобы получить Python 3.5 REPL или запустить совместимый скрипт, введите
python3
. Это необходимо для обеспечения совместимости со всем устаревшим Python 2.x (который всегда был и останется связанным сpython
).Тир может найти ,
python
если вы создали.desktop
файл для него (в~/.local/share/applications/
), чтобы открыть терминал и запустить REPL, например. Для Python не существует среды GUI REPL по умолчанию, и нормальный интерфейс предполагает, что пользователь пойдет в терминал.Говорят о том, что python 3.5 по умолчанию используется для сопровождения портирования всех системных скриптов с python 2.x на python 3.x, но не то, что python 3 заменит Python 2 во всех случаях.
источник
#!/usr/bin/python3
(или#!/usr/bin/python2
) в скриптах, лучше использовать (специально для python),#!/usr/bin/env python3
если вы хотите, чтобы он был удаленно переносимым. По большей части это просто документация, так как во многих случаях она все равно будет вызываться с использованием$ python3 your_pyprogram.py
.Вы предполагаете, что Python по умолчанию должен быть доступен как
python
. Это предположение неверно.В системе, которая поставляется с «предварительно загруженным» Python 3 и вообще без Python 2, будет только
python3
и нетpython
.Код, написанный для Python 3, всегда должен искать вызываемого интерпретатора
python3
. Код, написанный для Python 2, будет исторически искатьpython
.Может наступить момент времени, возможно, десятилетия спустя, когда почти никто не помнит Python 2, когда,
python
возможно, начнут ссылатьсяpython3
. Это было бы чисто для удобства, и может и не должно быть сделано преждевременно, если вообще! Там нет спешки, из-за следующего воздействия:«Старые» системы не будут знать
python2
только о нихpython
, поэтому имеет смысл продолжать искать код Python 2python
. Это причина, почемуpython
следует ссылаться на Python 2 «пока существует код Python 2».Новый код, написанный для Python 2, если это имеет смысл, может прекрасно выглядеть
python
. Он также может искатьpython2
, если он предназначен для работы только на Python 3, хорошо осведомленных и ухоженных системах (которые должны предлагать такую ссылку).Преимущество использования кода на Python 2
python2
состоит в том, что он не нуждается в дополнительных прикосновениях, как толькоpython
начинает ссылаться на тоpython3
, что может никогда не произойти или когда-тоpython
вообще исчезнет, что может произойти или не произойти. (Это может стать реальностью, если код Python 2 исчезнет после того, как гипотетический Python 4 станет популярным у его интерпретатораpython4
. - Потому что позволить ему указывать либо на то,python3
либо наpython4
оба, и это может сбить с толку.)источник
Python доступны как версии 2.x, 3.x. если вы вызываете python, как указано в python 2.x, он загрузит python 2.x
Ниже изображение поможет вам.
источник
python
- от использования<tab>
для запроса автозаполнения, который затем выводит возможные перестановкиpython*
и возвращает вас в новое приглашение.apt-cache
, особенно для начинающих пользователей Ubuntu.Python 3.x должен работать с 16.04 - на самом деле, он точно будет работать. У меня Ubuntu 14.04 и Python 3.4.3 - все, что вам нужно сделать, чтобы проверить его, это ввести текст,
python3
и он должен сказать вам, какую версию вы используете.источник