Seu shell (provavelmente bash) tem um alias atribuído para que, sempre que você digitar python
no início de um comando, mude para /usr/bin/python3
. É difícil para mim dizer por que você tem esse pseudônimo. Pode ser que o administrador do sistema queira que todos usem o Python 3 em vez do Python 2 por padrão e essa foi uma tentativa de realizar isso.
Seu /usr/bin/python
é um link simbólico para um binário do Python 2. Isso parece bem normal; é comum em muitas distribuições Linux (como Debian) que python
se refira ao Python 2, porque o Python 3 ainda não é popular o bastante. Isso nem sempre é o caso; no Arch Linux, python
refere-se ao Python 3.
Então, se eu tivesse que adivinhar, eu diria que o gerenciador de pacotes do seu sistema instalou o link simbólico de /usr/bin/python
to /usr/bin/python2.7
porque sua política é que as pessoas usem o Python 2 por padrão. Mas alguém que tinha alguma palavra na configuração do seu sistema decidiu que eles queriam que o Python 3 fosse usado por padrão, então eles instalaram esse alias.
Como você pode ver, o alias não funciona o tempo todo. Quando você digita nohup python
, o shell não expande seu alias e, em vez disso, apenas passa a string python
como um argumento para o comando nohup
. O comando nohup
tem que descobrir o que significa python
, e tudo o que ele faz é procurar em seu PATH; ele não sabe sobre seus aliases de shell. Ele encontrará /usr/bin/python
e acabará executando o Python 2 para você.
Você pode ler o manual do seu shell para descobrir quais arquivos ele executa na inicialização (por exemplo, .bashrc e coisas assim). Isso ajudará você a descobrir por que seu shell tem esse alias para o Python 3. Procure uma linha como esta:
alias python=python3
Você pode ler sobre o gerenciador de pacotes do sistema para descobrir como ver quais arquivos pertencem a quais pacotes, e isso pode ajudá-lo a descobrir por que existe um link simbólico para o Python 2. Basta perguntar ao gerenciador de pacotes qual pacote possui o link /usr/bin/python
.