'qual python' aponta para o python que eu quero, mas 'python' roda a versão errada

7

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/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:

  1. Acredito que o caminho está configurado de forma sensata e which python parece confirmar isso.
  2. 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?

    
por tramdas 04.04.2010 / 18:34

3 respostas

12

Experimente hash -d python . Isso fará com que o bash esqueça onde viu pela última vez o executável python.

    
por 04.04.2010 / 18:53
3

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:

  1. Inicie o qqq ( /usr/bin/qqq ) em bash .
  2. Adicione algo qqq a /usr/local/bin/ .
  3. Tente iniciar 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 .

    
por 04.04.2010 / 18:50
0

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
    
por 11.10.2012 / 15:59