Ваша оболочка (вероятно, bash) имеет псевдоним, назначенный таким образом, что всякий раз, когда вы печатаете python
в начале команды, он меняет его на /usr/bin/python3
. Мне трудно сказать, почему у вас есть этот псевдоним. Возможно, ваш системный администратор хочет, чтобы все использовали Python 3 вместо Python 2 по умолчанию, и это была попытка сделать это.
Ваша /usr/bin/python
символическая ссылка на двоичный файл Python 2. Это кажется вполне нормальным; во многих дистрибутивах Linux (таких как Debian) python
принято ссылаться на Python 2, потому что Python 3 еще недостаточно популярен. Это не всегда так; в Arch Linux python
относится к Python 3.
Так что, если я должен был догадаться, я бы сказал, что менеджер пакетов вашей системы установлены символические ссылки от /usr/bin/python
до, /usr/bin/python2.7
потому что его политика для людей, чтобы использовать Python 2 по умолчанию. Но кто-то еще, кто высказался по поводу настройки вашей системы, решил, что они хотят использовать Python 3 по умолчанию, поэтому они установили этот псевдоним.
Как видите, псевдоним не работает все время. Когда вы печатаете nohup python
, оболочка не раскрывает ваш псевдоним, а просто передает строку python
в качестве аргумента nohup
команды. Затем nohup
команда должна выяснить, что python
означает, и все, что она делает, это посмотреть на ваш PATH; он не знает о ваших псевдонимах оболочки. Он найдет /usr/bin/python
и в конечном итоге запустит Python 2 для вас.
Вы можете прочитать руководство по вашей оболочке, чтобы узнать, какие файлы она запускает при запуске (например, .bashrc и тому подобное). Это поможет вам выяснить, почему ваша оболочка имеет этот псевдоним для Python 3. Найдите строку, подобную этой:
alias python=python3
Вы можете прочитать о менеджере пакетов системы, чтобы выяснить, как посмотреть, какие файлы принадлежат каким пакетам, и это может помочь вам выяснить, почему существует символическая ссылка для Python 2. Просто спросите менеджера пакетов, какому пакету принадлежит /usr/bin/python
ссылка.