таким образом, при проигрывании с некоторыми псевдонимами я понял, что существует три команды Python (не принимая во внимание команды python 3) в терминале:
Таким образом, мой вопрос состоит в том, почему имеет место это? Почему нам нужно три? Я понимаю потребность иметь универсальную одну (Python) и потребность иметь другой для различения python3 от python2, но остальные я не знаю.
Кроме того, как я могу видеть, связаны ли они с тем же файлом (символьная ссылка)?
python
интерпретатор по умолчанию, используемый распределением. Это может (или может not1) указывать на python3 в будущем.
python2
интерпретатор Python 2 по умолчанию (который совпадает с выше если python
точки к python2
, не иначе). Это указывает на текущий стабильный/поддерживаемый интерпретатор.
python2.7
определенный интерпретатор---, Вы можете иметь, например, python2.7
как текущий и a python2.1
то, что необходимо проверить вопросы совместимости.
Видеть всех их:
[romano:~] % ls -l /usr/bin/python /usr/bin/python2 /usr/bin/python2.7
lrwxrwxrwx 1 root root 9 jul 22 2014 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root 9 jul 22 2014 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3345416 jun 22 20:51 /usr/bin/python2.7
Таким образом в Ваших сценариях — в shebang2 — Вы используете python
если Вы хотите использовать интерпретатор по умолчанию для распределения (и если Вы хотите общую будущую безопасность, Вы имеете свой сценарий обе работы в версии 2 и 3, но видите примечание 1 ниже); python2
или python3
если Вам нужна версия 2 или 3 а именно, но все в порядке с помощью по умолчанию (рекомендуемые) предложения распределения; python2.7
если Вам нужна та определенная версия, и Вы предпочитаете, чтобы Ваш сценарий перестал работать, если это не доступно.
1 я думаю, что это никогда не будет изменяться на точку к python3
, это слишком опасно. Но хорошо, у меня нет магических кристаллов...
2 это - первая строка исполняемых сценариев, которые для Python должны быть похожими
#! /usr/bin/env python2