PDA

View Full Version : Python non si avvia piu' da terminale


santaclause83
01-03-2011, 17:00
Salve, recentemente mi sono trovato a dover installare la versione di Python 2.7, compatibile con la libreria matplotlib, compatibile dal 2.7

Ho installato tutto con la classica procedura guidata macosx

Sul terminale ho selezionato il 2.7 come piattaforma python di default

Vado per lanciare python, e a schermo si stampa questa simpatica scritta:

dyld: unknown required load command 0x80000022
Trace/BPT trap

Vado per risettare python 2.5.1, che era il mio default precedente, lo rilancio, e la situazione si dimostra irreparabile, ancora questo lapidario messaggio.

Fate sapere se avete idee su come poter smanettare a questi livelli, anche solo per farmi recuparere un python qualsiasi :muro:

Grazie

mad_hhatter
01-03-2011, 17:19
puoi postare l'output dei comandi seguenti?


which python

which python2.5

echo $PATH


per caso durante l'installazione di python hai spuntato l'opzione "fix system python"?

che versione di mac os x hai?

santaclause83
01-03-2011, 18:09
which python restituisce:
/Library/Frameworks/Python.framework/Versions/2.7/bin/python

which python2.5:
/usr/bin/python2.5

echo $PATH:
/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin


per caso durante l'installazione di python hai spuntato l'opzione "fix system python"?
no, mi sono limitato a premere Accetta, e Continua, e poi ha fatto tutto lui

Versione MACOSX: 10.5.8

mad_hhatter
01-03-2011, 18:48
which python restituisce:
/Library/Frameworks/Python.framework/Versions/2.7/bin/python

which python2.5:
/usr/bin/python2.5

echo $PATH:
/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin


per caso durante l'installazione di python hai spuntato l'opzione "fix system python"?
no, mi sono limitato a premere Accetta, e Continua, e poi ha fatto tutto lui

Versione MACOSX: 10.5.8

mi sa che quell'opzione è attivata di default :(

in sostanza, il tuo python di sistema è ancora impostato sul 2.7

come hai cambiato il python di default?

ti consiglierei di eliminare /Library/Frameworks/Python.framework/Versions/2.7/bin dal PATH e di creare un link simbolico "python2.7" in /usr/local/bin, che punti a /Library/Frameworks/Python.framework/Versions/2.7/bin/python

santaclause83
01-03-2011, 19:45
Per cambiare la versione di default ho scritto questo:
defaults write com.apple.versioner.python Version 2.7


Ok per l'eliminazione del link dal PATH e per il link simbolico

Mi sapresti dire dove si trova esattamente PATH?

in usr/local/bin dove lo creo il link simbolico? immagino ci sia un file apposito dove inserire il nuovo path ma non saprei quale

Grazie

mad_hhatter
02-03-2011, 12:20
Per cambiare la versione di default ho scritto questo:
defaults write com.apple.versioner.python Version 2.7


Ok per l'eliminazione del link dal PATH e per il link simbolico

Mi sapresti dire dove si trova esattamente PATH?

in usr/local/bin dove lo creo il link simbolico? immagino ci sia un file apposito dove inserire il nuovo path ma non saprei quale

Grazie

per il path: hai un file .profile o .bash_profile nella tua home? prova a vedere se è scritto lì dentro

il link simbolico lo crei direttamente in /usr/local/bin

purtroppo non sono abbastanza esperto con mac os x da dirti come resettare un default :( mi spiace. Però potresti vedere che versione ha il framework python originale nel System Profiler (io ho installato un python 2.4 da python.org ma il System profiler lo mostra come 2.2)

santaclause83
02-03-2011, 13:30
.profile mi dice:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

# Setting PATH for Python 2.7
# The orginal version is saved in .profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

se apro .profile.pysave trovo:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Dovrei cancellare entrambi?


Riguardo il System Profiler, mi dice che ha installato il framework per 2.5 e per 2.7

La loro posizione e' in: /Library/Frameworks/Python.framework

mad_hhatter
03-03-2011, 00:59
edita .profile in questo modo:


export PATH=/opt/local/bin:/opt/local/sbin:$PATH

# Setting PATH for Python 2.7
# The orginal version is saved in .profile.pysave
#PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
#export PATH


poi riavvia il terminale e vediamo che dice ora il comando "which python"

santaclause83
03-03-2011, 10:35
Grande! ho recuperato il 2.5!

Un ultimissima cosa, sapresti da qui suggerirmi come impostare il 2.7?

Grazie ancora

mad_hhatter
03-03-2011, 12:53
l'approccio che seguo io è questo:

installo una distribuzione python personalizzando le opzioni di installazione in modo da non installare le GUI application (IDLE, ecc), da NON fixare il python di systema e da NON installare i tool a riga di comando in /usr/local/bin.

In questo modo l'installer crea una nuova cartella in /Library/Frameworks/Python.frameworks.Versions E BASTA

dopo di che a manina creo un link simbolico "pythonX.Y" (io di solito li chiamo "devpyX.Y": evito esplicitamente di usare il nome "python" in modo da non creare conflitti qualora apple decidesse di aggiungere altri python di sistema)

infine di solito lavoro con virtualenv per lasciare le distribuzioni python così come sono uscite dalla "fabbrica" (ma non è detto che a te serva questo livello di isolamento)

santaclause83
08-03-2011, 10:57
Il link simbolico lo crei in usr/loc/bin?

dentro ci scrivi un path in particolare?

mad_hhatter
08-03-2011, 11:49
Il link simbolico lo crei in usr/loc/bin?

dentro ci scrivi un path in particolare?

non sono sicuro di aver capito la domanda...

il comando sarebbe il seguente:


ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/python /usr/local/bin/my_python2.7


dove al posto di "my_python2.7" inserirai il nome che preferisci