2015-04-20 25 views
6

Tutto sembra funzionare bene sia per python 2 e 3:Python "bad interpreter" ERRORE

$ which Python 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python 

$ python --version 
Python 2.7.9 

$ python2 
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 

$ python3 
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 

mie impostazioni .bash_profile sono le seguenti:

PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}" 
export PATH 

PATH="/Library/Frameworks/Python.framework/Versions/3.4/bin:${PATH}" 
export PATH 

Il problema:

$ virtualenv My_Env 
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python3/bin/python3.4: bad interpreter: No such file or directory 

Il percorso sopra non esiste. Ho scaricato i miei pacchetti Python direttamente dal sito Python e installato utilizzando le impostazioni predefinite.

Prima di questo, ho usato Python installato con HomeBrew, ma questo percorso non sembra essere comunque un percorso di file brew.

Bottom line ... Il mio percorso file è incasinato in un punto diverso dal mio .bash_profile e non ho idea di dove cercare di risolverlo.


Si noti inoltre che ho impostato il mio altro computer con le stesse esatte .bash_profile e pitone installazioni e funziona perfettamente ...

Entrambi sono in esecuzione Mac Yosemite.

Grazie in anticipo!

+0

Cosa c'è in/usr/local/opt/python3? – kpie

+0

Non c'è python3 in/usr/local/opt/ – Dex

+0

per "esportare VIRTUALENV_PYTHON =" nei file bash. – DTing

risposta

5

Ok, sono stato in grado di risolvere il problema con una nuova installazione di virtualenv. Presumo che è dove si trovava il problema del percorso (da qualche parte nell'installazione di virtualenv).

+0

VIRTUALENV e home brew potrebbero aver utilizzato lo stesso percorso per python tre, causando problemi in VIRTUALENV quando si installava in casa python 3. – kpie

+0

Sì. Ho installato virtualenv prima di usare le installazioni da Python.org. Quindi, penso che virtualenv stia usando il percorso originale piuttosto che il nuovo. :) – Dex

+1

Potrebbe anche essere utile 'source ~/.bash_profile' dopo l'installazione di virtualenv fresh. Ha funzionato per me. –

0

È possibile controllare il file "activate" nella cartella virtualenv bin e vedere ciò che è scritto lì intorno alla riga 42, e quindi in realtà può essere impostato manualmente, tenendo presente che tutti gli eseguibili in questa cartella bin sono hard codificato per la prima linea di shebang.

Sarà necessario modificarli. O semplicemente sposta la cartella nel posto giusto per la tua attività temporanea corrente, altrimenti potresti aver bisogno di uno strumento di riposizionamento virtualenv o semplicemente reinstallarlo.

6

Il mio problema era semplice quanto avere spazi nella directory nella parte superiore di venv/bin/pip, il che significava che il percorso era all'interno delle virgolette. Appena ho fatto in modo che non fosse sotto una directory con spazi e rimosso le virgolette ha funzionato.

es. #!"/Users/Tomm/MY PROJECT/venv/bin/python" deve essere modificato in #!/Users/Tomm/MY-PROJECT/venv/bin/python

+0

Grazie! Stavo assolutamente impazzendo qui dopo un buon 30 # $! @@ minuti cercando di risolvere questo problema con pip. – ChrisR

+0

Stava avendo questo problema su OS X e su una VM Linux. Sicuramente nessuno spazio nei nomi delle directory! –