Como posso alterar a versão padrão do Python no Snow Leopard?

25

Eu recentemente atualizei minha instalação do Mac OS X 10.5 Leopard para o 10.6 Snow Leopard, e com isso veio uma versão atualizada do Python, 2.6.1 (em vez disso, se 2.5.1). Agora, quando digito python no terminal, ainda recebo

Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) 
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Eu olhei em /usr/bin/ e descobri que para obter o Python 2.6 eu tenho que digitar python2.6 .

A pergunta é: Como faço o mapa de comandos python para o Python 2.6?

    
por SBSTN 03.09.2009 / 23:09

5 respostas

21

É fácil:

defaults write com.apple.versioner.python Version 2.6

Veja man python para uma explicação completa da Apple.

Além disso, uma pegadinha: verifique se você está executando o Python que veio com o seu computador e não outro que você instalou. Faça isso digitando which python em seu prompt de comando. Deve apontar para /usr/bin/python . Eu só mencionei isso porque meu padrão é o 2.6 no Snow Leopard (era 2.5 quando eu estava usando o Leopard). Então, o fato de que você está recebendo 2,5 pode indicar que há algo mais em seu caminho.

Atualizar

Para abordar os comentários abaixo:

This doesn’t do what people are asking.

Para mim, no OS X 10.8.2. Depois de fazer defaults write com.apple.versioner.python Version 2.6 , a versão padrão do Python é de fato 2.6. (E da mesma forma depois de voltar a 2.7).

Isso vale se eu executar python diretamente ou usar um script executável começando com #!/usr/bin/env python - obtenho a versão esperada do Python.

This does not solve the symlink in /System/Library/Frameworks/Python.framework/Versions where Current point to 2.7 which may cause problems (because it is still in the sys.path with 2.6 !)

De fato, isso não conserta esse link simbólico.

No entanto, execute um script curto que print() s sys.path e (pelo menos na configuração relativamente padrão) os diretórios da biblioteca 2.6 são no caminho e os 2.7 dirs não no caminho. Também não é o diretório Current symlinked no caminho. Por isso, não deve ser um problema para a maioria dos scripts.

No entanto, é possível - não testado - que o link simbólico Current seja usado por easy_install ou pip . Isso causaria problemas. Com certeza parece um bug que o link simbólico não é atualizado quando você atualiza a versão do Python.

    
por 04.09.2009 / 00:01
12

Eu sugeriria usar portas mac ...

Existe um pacote chamado python_select que permite usar pythons em paralelo. Então, primeiro instale as portas mac se ainda não estiverem instaladas.

Primeiro instale o pacote python_select:

sudo port install python_select

Já agora você pode verificar quais distribuições python estão disponíveis no seu sistema. Basta emitir o comando:

port select --list python     (MacPorts 2.x)
python_select -l              (MacPorts 1.x)

No meu caso, foi impressa pelo menos a versão python, que vem por padrão com o Snow Leopard: python26-apple .

port select --show python     (MacPorts 2.x)
python_select -s              (MacPorts 1.x)

mostra a versão atualmente selecionada, por exemplo %código%. Então você vê, este pacote joga bem com o Mac. Para mais opções, consulte

port select                   (MacPorts 2.x)
python_select -h              (MacPorts 1.x)

Do que você pode procurar por uma versão disponível do python no repositório de ports:

port search python

Isso produzirá uma longa lista de pitons disponíveis.

Para instalar os pacotes desejados, por ex. python 2.4 execute:

sudo port install python24

Agora, o python26-apple mostrará o python recém-instalado também. Para mudar para o problema do python 2.4:

sudo port select --set python python24  (MacPorts 2.x)
sudo python_select python24             (MacPorts 1.x)

Este comando é persistente entre shells.

    
por 27.01.2011 / 14:16
5

Supondo que você esteja usando o bash, digite:

% type -a python

Isso mostrará a você todos os executáveis "python", aliases, builtins de shell (provavelmente nenhum) ou funções bash no seu PATH.

Isso deve ajudá-lo a identificar melhor o que está acontecendo aqui.

    
por 03.09.2009 / 23:52
3

Você deseja criar um link simbólico para a versão desejada.

cd /Library/Frameworks/Python.framework/Versions 
sudo rm Current 
sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6 Current

Isso remove o ponteiro atual da versão padrão do Python e o configura para a versão 2.6.

    
por 11.11.2011 / 05:35
0

Não ideal (IMO), mas isso corrigiu todos os aplicativos que pesquisam python no meu /usr/local/bin/ .

sudo cp /usr/local/bin/python3 /usr/local/bin/python

Claro, depois de instalar a versão mais recente do Python.

    
por 29.12.2015 / 18:32