2014-12-02 14 views
5

Sinossi: pip install gevent non funziona.Impossibile creare python gevent su mac osx 10.10

Scavando giù, ho scaricato il gevent .tar.gz e corse la compilazione manualmente: python setup.py build, ottenuto lo stesso errore:

running build 
running build_py 
running build_ext 
building 'gevent.core' extension 
clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -U__llvm__ -DLIBEV_EMBED=1 -DEV_COMMON= -DEV_CLEANUP_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_PERIODIC_ENABLE=0 -Ibuild/temp.macosx-10.10-x86_64-2.7/libev -Ilibev -I/Users/travisjohnson/.pyenv/versions/2.7.5/include/python2.7 -c gevent/gevent.core.c -o build/temp.macosx-10.10-x86_64-2.7/gevent/gevent.core.o 
In file included from gevent/gevent.core.c:313: 
In file included from gevent/libev.h:2: 
... 
29 various compiler warnings 
... 
29 warnings generated. 
clang -bundle -bundle_loader python.exe -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/Users/travisjohnson/.pyenv/versions/2.7.5/lib -U__llvm__ build/temp.macosx-10.10-x86_64-2.7/gevent/gevent.core.o -o build/lib.macosx-10.10-x86_64-2.7/gevent/core.so 
ld: file not found: python.exe 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
error: command 'clang' failed with exit status 1 

Il mio primo pensiero è "Sembra che stia dicendo clangore di collegare python.exe in qualcosa", che inizialmente pensavo fosse una sciocchezza (non è Windows), ma: https://docs.python.org/devguide/setup.html#unix dice python.exe è il nome predefinito per python dopo la costruzione (a causa dell'insensibilità del caso), quindi ora non lo so.

Sto scavando da ore e non ho un passaggio successivo. I found something similar (I think) on a different project, ma non ci sono state spiegazioni sulla causa o su cosa è stato risolto, solo che è stato corretto (ho controllato che il mio xcode e gli strumenti di sviluppo ecc. Siano aggiornati)

Sono a una perdita totale per il prossimo passi qui, qualcuno potrebbe indicarmi la giusta direzione?

EDIT: Scavando un po 'più ad attivare l'accumulo passaggio manualmente dopo passo, ho fatto arrivare questo specifica fase di non errore-out da:

  • Trovare la posizione del python binario (non lo spessore utilizzato da pyenv)
  • in esecuzione manualmente il comando clang elencati nel registro, ma sostituendo python.exe con il percorso al mio python binario, vale a dire: /Users/username/.pyenv/versions/adid/bin/python2.7
  • 012.351.641.061.

Quindi sembra che non stia ottenendo un percorso corretto per il binario python? Sfortunatamente non conosco il resto del processo di costruzione, quindi non posso continuare da solo, e non so come posizionare questa correzione del percorso nel processo eseguito da setup.py. Non avevo questi problemi prima di aggiornare a 10.10 (poteva essere qualcos'altro, sono passati alcuni giorni e ho fatto altre cose), quindi non so perché questo è solo un nuovo problema.

+0

hai provato a fare 'xcode-select --install' su questa macchina? gli errori relativi a 'clang' sono spesso causati da compilatori C++ mancanti/non correttamente configurati. – oxymor0n

+0

Ho sì, ho trovato consigli simili altrove, è stata una delle prime cose che ho provato. – Conslo

+0

Deve esserci qualcos'altro che ti blocca, appena installato su 10.10 - hai provato ad aggiornare clang o gcc in una versione più recente? –

risposta

5

A quanto pare questo è un problema con il mio manager virtualenv:

https://github.com/yyuu/pyenv/issues/273

Unable to install compiled Python modules under pyenv on OS X 10.10 è il nome del problema.

MODIFICA: No, non lo è.

Questo è un bug con python. Il modo in cui Python ha eseguito il confronto delle versioni OS in OSX è stato ingenuo, e ha rotto con la doppia cifra in 10.10, dove avrebbe poi pensato che tu fossi su un OSX molto più vecchio. Questo può spesso passare inosservato, tranne quando si installano moduli compilati (dove è usato per prendere alcune decisioni).

questo è stato fissato qui: https://bugs.python.org/issue21811

non ricordo se 2.7.7 o 2.7.8 era la versione con la correzione rilasciata (ma era uno di loro), ma il risultato finale è che si può utilizzare versioni precedenti di 2.7 su OSX 10.10 o versioni successive. Se ti imbatti in questo problema, personalmente spingerei ad aggiornare la versione python usata;) (2.7.11 ha comunque dei fantastici miglioramenti ssl).

+0

Per chi ha problemi come me, la versione python con la correzione era 2.7.8. Grazie per la tua risposta! –

+0

È possibile correggere il bug da soli, vedere https://github.com/pyenv/pyenv/issues/273#issuecomment-285038543 – Andrei