Неоднозначность версии Python на ubuntu 18.04 и ubuntu 20.04

Я не могу понять, в какой каше я нахожусь, кто-нибудь, пожалуйста, объясните, что здесь происходит и как мне это решить?скриншот командной строки

$ python --version
Python 3.6.5

$ which python
/usr/bin/python

$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16  2018 /usr/bin/python -> python2.7

Edit: Вывод команды type -a python, скриншот

$ type -a python
python is aliased to 'python3.6'
python is /usr/bin/python
python is /home/jenim/anaconda3/bin/python

Примечание: Я обновился до ubuntu 20.04 после того, как опубликовал этот вопрос, и ситуация изменилась, как показано ниже, скриншот

jenim : ~/Desktop
$ python --version
Python 3.6.5

jenim : ~/Desktop
$ which python
/usr/bin/python

jenim : ~/Desktop
$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 7 Apr 15 16:15 /usr/bin/python -> python2

jenim : ~/Desktop
$ ls -l /usr/bin/python2
lrwxrwxrwx 1 root root 9 Mar 13 18:01 /usr/bin/python2 -> python2.7

jenim : ~/Desktop
$ ls -l /usr/bin/python2.7
-rwxr-xr-x 1 root root 3694632 Apr  7 17:35 /usr/bin/python2.7

Теперь, когда я обновился до ubuntu 20.04, я задаюсь вопросом, почему Python 2 все еще находится в моей системе. В примечании к выпуску ubuntu 20.04 говорится, что она больше не поддерживает Python 2

Edit 2: Следуя комментарию Kulfy, я понял, что python был псевдонимом для python3.6. Поэтому я удалил псевдоним, и теперь все выглядит разумно, кроме того, почему который python не псевдоним на python3.6 ?

0
задан 25 April 2020 в 16:55

1 ответ

Python3.6 вызывается всякий раз, когда вы вызываете python, потому что вы псевдонимили python на python3.6. Причина, по которой , который не видит псевдоним, заключается в том, что который сканирует PATH на наличие исполняемых файлов, соответствующих именам аргументов. В вашем случае , который фактически давал выходные данные для /usr/bin/python. Из , котораяmanpage:

, которая возвращает пути файлов (или ссылок), которые будут выполняться в текущей среде, если бы ее аргументы были даны в виде команд в строго POSIX-совместимой оболочке. Это делается путем поиска исполняемых файлов, соответствующих именам аргументов, в PATH. Он не канонизирует имена путей.

0
ответ дан 27 April 2020 в 08:04

Другие вопросы по тегам:

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