2015-08-11 28 views
10

Ho installato sia Python 2.7 che Python 3.4 sul mio MacBook, poiché a volte sono necessari entrambi.Errore di fusione Mac OS X 10.10

Python 2.7 viene fornito dalla stessa Apple. Python 3.4 è installato per Mac OS X installer a 64-bit/32-bit nel collegamento https://www.python.org/downloads/release/python-343/

Ecco come ho installato Meld su Mac OS X 10.10:

  1. Installare mela strumenti a linea di comando di sviluppo ;
  2. Installa Homebrew;
  3. homebrew install homebrew/x11/meld
  4. volta lanciato si fondono, si dice:

    **bash: /usr/local/bin/meld: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory** 
    

Dalla mia ricerca, alcuni raccomandano di modificare la prima linea in /usr/local/bin/pip, vale a dire,

#!/usr/local/opt/python/bin/python2.7 

Questo il file è mancante. Tuttavia, se voglio essere in grado di usare sia Python 2.7 che Python 3.4 per Meld, cosa dovrei fare per farlo funzionare?

+0

Una soluzione temporanea è di fare funzionare semplicemente 'python/usr/local/bin/meld', per una correzione permanente - può voi aggiorna la tua domanda per aggiungere come hai installato Python? –

+1

python/usr/local/bin/fondere Traceback (chiamata più recente scorso): file "/ usr/local/bin/fondere", linea 73, in importazione meld.conf ImportError: Nessun modulo denominato fusione. conf – day

+0

Perché è necessario eseguire la fusione con entrambi? Perché la versione 2.7 non funziona per te? È sufficiente un alias BASH? Altrimenti, che ne dici di uno script di wrapper nel tuo ~/bin? – Nick

risposta

5

Questo dovrebbe risolvere il problema: brew link --overwrite python

0

io uso Linux. Non ho idea di Apple e delle cose speciali che fanno. Ma a giudicare dai messaggi di errore dato sembra che

  1. bash avvia il programma di fusione
  2. il programma di fusione si riferisce alla il programma Python in qualche parte
  3. qualche parte è sbagliato in il programma di fusione, causando il messaggio di errore bash

Ora qui è come il debug e risolvere tali problemi:

  1. aprire un terminale (finestra nera in cui è possibile inserire i comandi)
  2. scoprire dove il programma python viene installato inserendo which python nella finestra del terminale.

    $ which python 
    /usr/bin/python 
    

    Nel mio caso possiamo vedere che Python è installato in /usr/bin/python

  3. Scopri dove è installato il programma di fusione. Nella domanda originale questo è in /usr/local/bin/meld, come possiamo dedurre dal messaggio di errore in 4.Ma siamo in grado di provare di nuovo il comando che e chiedere dove il sistema trova una fusione: which meld:

    $ which meld 
    /usr/bin/meld 
    

    Nel mio caso questo è in /usr/bin/meld.

  4. ora si apre il file che which meld presentate nel passaggio 3. e fare una copia di backup di esso
  5. ora si apre il file che which meld presentate nel passaggio 3. nel vostro editor preferito e cambiare la prima linea, come ad che inizia con #! seguito dal percorso di del programma python del passaggio 2. nel mio caso la prima riga di combinazione è: #!/usr/bin/python. Salva le modifiche al file e riprova a iniziare la combinazione. Probabilmente hai bisogno di alcuni diritti di accesso amministratore per poter salvare il file.
    1. prima avviarlo nel terminale immettendo meld, quindi è più facile leggere i messaggi di errore.
    2. se fusione iniziato nel terminale, avviare fondere il vostro solito modo dalla GUI, e la speranza che funziona, troppo

La domanda iniziale menzionato diverse versioni di pitone. Ho anche diverse versioni installate, posso chiedere il sistema per le diverse versioni:

$ which python2 
/usr/bin/python2 
$ which python2.7 
/usr/bin/python2.7 
$ which python3 
/usr/bin/python3 
$ which python3.4 
/usr/bin/python3.4 

Se avete installato più versioni: provare uno in un momento in cui la modifica del file dal passaggio 3.

+2

'which' è spesso il comando sbagliato da usare. Su OSX, esegue un programma esterno che non conosce le funzioni della shell, gli alias, ecc. Un'opzione migliore è 'type', che è una shell integrata e correttamente standardizzata da POSIX. – tripleee

0

E ' altamente raccomandato di non usare il System Python su osx, ma installare una versione separata di Python (per un elenco dei motivi vedere ad esempio questa pagina here).

Il motivo si riduce al fatto che OSX dipende dalla sua installazione Python, che non dovresti manomettere, lasciando impossibile aggiornare Python o lavorare con alcuni moduli.

Si può facilmente installare una versione separata di Python con homebrew eseguendo:

brew install python 

Questo dovrebbe dare un'installazione funzionante di Python 2.7 (brew install python3 per 3.x) che si trova in /usr/local/bin/python. Questo è (se comprendo correttamente i messaggi di errore) anche il luogo in cui Meld lo sta cercando.

(mi piace this blogpost per maggiori informazioni su come configurare Python su OSX.)

Problemi correlati