Experimente hash -d python . Isso fará com que o bash esqueça onde viu pela última vez o executável python.
Eu quero usar python24 fornecido por portas, então eu instalei, e python_select -s mostra que a versão que eu quero é de fato selecionada. A execução de which python dá /opt/local/bin/python e a execução de /opt/local/bin/python fornece a versão desejada. No entanto, quando executo python do shell, recebo a versão /usr/bin/python . Eu não tenho um alias de python.
Aqui está a situação em poucas palavras:
which python parece confirmar isso. alias retorna apenas 1 entrada, o que é algo não relacionado a isso. No entanto, executar python do shell bash me fornece o python errado!
Estou um pouco perplexo! O que eu estou negligenciando?
Talvez você tenha acabado de atualizar algo e sua instância do bash tenha informações antigas sobre executáveis. Experimente exec bash .
Quando eu:
qqq ( /usr/bin/qqq ) em bash . qqq a /usr/local/bin/ . qqq novamente no mesmo bash . Ele usa a versão já pesquisada ( /usr/bin/qqq )
No entanto, quando eu reinicio o bash, ele procura por qqq novamente e recebe /usr/local/bin/qqq .
Outra possibilidade é que o próprio script especifique qual executável do Python deve ser executado na primeira linha do script. Por exemplo, meu sistema tem o Python 2.6 e 2.7 instalado, e se a primeira linha é algo como:
#!/usr/bin/Python-2.6.8/bin/python
então eu pego o Python 2.6, apesar de 2.7 ser o padrão do sistema.
A maneira usual de especificar o padrão é:
#!/usr/bin/env python