it-swarm-eu.dev

Come posso cambiare la versione predefinita di Python su Snow Leopard?

Recentemente ho aggiornato la mia installazione di Mac OS X 10.5 Leopard a 10.6 Snow Leopard, e con essa è arrivata una versione aggiornata di Python, 2.6.1 (invece se 2.5.1). Ora quando digito python nel Terminale, ottengo ancora

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.
>>>

Ho cercato in /usr/bin/ e ho scoperto che per ottenere Python 2.6 devo digitare python2.6.

La domanda è: Come faccio a rendere il comando python a Python 2.6?

27
SBSTN

È facile:

defaults write com.Apple.versioner.python Version 2.6

Vedi man python per una spiegazione completa di Apple.

Inoltre, un trucco: assicurati di aver eseguito Python fornito con il tuo computer e non con un altro che hai installato. A tale scopo, digitare which python al prompt dei comandi. Dovrebbe puntare a /usr/bin/python. Lo dico solo perché il mio valore predefinito è 2.6 in Snow Leopard (era 2.5 quando stavo usando Leopard). Quindi il fatto che stai ottenendo 2,5 potrebbe indicare che c'è qualcos'altro nel tuo percorso.

Update

Per indirizzare i commenti qui sotto:

Questo non fa quello che le persone chiedono.

Lo fa per me, in OS X 10.8.2. Dopo aver eseguito defaults write com.Apple.versioner.python Version 2.6, la versione predefinita di Python è effettivamente 2.6. (E allo stesso modo dopo il passaggio al 2.7).

Questo è vero sia che eseguo direttamente python, sia che usi uno script eseguibile che inizia con #!/usr/bin/env python- ottengo la versione prevista di Python.

Questo non risolve il collegamento simbolico in /System/Library/Frameworks/Python.framework/Versions dove Current punta a 2.7 che può causare problemi (perché è ancora in sys.path con 2.6!)

In effetti, non risolve quel collegamento simbolico.

Tuttavia, esegui uno script breve che print()s il sys.path e (almeno sulla mia impostazione relativamente predefinita) le directory della libreria 2.6 sono sul percorso e le 2.7 dirs sono non sul percorso. Né la directory symlink Current sul percorso. Quindi non dovrebbe essere un problema per la maggior parte degli script.

Tuttavia, è possibile - non ha provato - che il link simbolico Current sia utilizzato da easy_install o pip. Ciò causerebbe problemi. Di certo sembra un bug che il link simbolico non venga aggiornato quando aggiorni la versione di Python.

21
Nate

Suggerirei di usare le porte mac ...

C'è un pacchetto chiamato python_select che consente l'uso di pitoni in parallelo. Quindi prima installa porte mac se non sono già installate.

Prima installa il pacchetto python_select:

Sudo port install python_select

Già ora puoi verificare quali distribuzioni python sono disponibili sul tuo sistema. Basta emettere il comando:

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

Nel mio caso ha stampato almeno la versione di Python che viene fornita di default con Snow Leopard: python26-Apple.

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

mostra la versione attualmente selezionata, ad es. python26-Apple. Quindi, vedi, questo pacchetto funziona bene con Mac. Per ulteriori opzioni problema

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

Di quanto è possibile cercare la versione python disponibile nel repository dei port:

port search python

Questo produrrà una lunga lista di pitoni disponibili.

Per installare i pacchetti desiderati, ad es. python 2.4 esegue:

Sudo port install python24

Ora python_select -s mostrerà anche il python appena installato. Per passare al problema di Python 2.4:

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

Questo comando è persistente tra le shell.

12
ovanes

Supponendo che stai usando bash, scrivi:

% type -a python

Questo mostrerà tutti i file eseguibili "python", gli alias, i builtin di Shell (probabilmente nessuno) o le funzioni di bash nel PATH.

Questo dovrebbe aiutarti a identificare meglio cosa sta succedendo qui.

5
Doug Harris

Vuoi creare un link simbolico alla versione desiderata.

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

Ciò rimuove il puntatore corrente alla versione predefinita di Python e lo imposta sulla versione 2.6.

3
curious

Non ideale (IMO), ma questo ha risolto tutte le app in cerca di python nel mio /usr/local/bin/.

Sudo cp /usr/local/bin/python3 /usr/local/bin/python

Ovviamente, dopo aver installato l'ultima versione di Python.

0
AGDM