2016-07-04 31 views
8

Sto provando a creare Python (3.5.2) su OS X El Capitan (10.11.5). Tuttavia, mi imbatto in un errore quando provo a make esso. L'errore sembra essere correlato a .Creazione di Python 3 su OS X: [Python/importlib.h] Errore 133

/usr/local/src/Python-3.5.2 $ make 
if test "no" != "yes"; then \ 
     ./Programs/_freeze_importlib \ 
      ./Lib/importlib/_bootstrap.py Python/importlib.h; \ 
    fi 
dyld: lazy symbol binding failed: Symbol not found: _getentropy 
    Referenced from: /usr/local/src/Python-3.5.2/./Programs/_freeze_importlib 
    Expected in: /usr/lib/libSystem.B.dylib 

dyld: Symbol not found: _getentropy 
    Referenced from: /usr/local/src/Python-3.5.2/./Programs/_freeze_importlib 
    Expected in: /usr/lib/libSystem.B.dylib 

/bin/sh: line 1: 56666 Trace/BPT trap: 5  ./Programs/_freeze_importlib ./Lib/importlib/_bootstrap.py Python/importlib.h 
make: *** [Python/importlib.h] Error 133 
/usr/local/src/Python-3.5.2 $ 

È possibile vedere i miei passi on GitHub.

L'uscita del terminale completa fino a make non riuscita è in un Gist.


Riconosco pienamente che questo è un esercizio accademico, come El Capitan viene fornito con Python 2.7.10 e si può facilmente installare Python 3.5.2 con il pacchetto ufficiale di installazione di OS X o tramite Homebrew.

La documentazione per Using Python on Unix platforms fornisce istruzioni di compilazione. La documentazione per Using Python on a Macintosh specifica in modo specifico di utilizzare il pacchetto di installazione di OS X.

Tuttavia, dovrebbe essere possibile creare su Mac.

Python su un computer Macintosh con Mac OS X è in linea di principio molto simile a Python su qualsiasi altra piattaforma Unix, ma ci sono un certo numero di funzionalità aggiuntive come l'IDE e il Package Manager che vale la pena sottolineare.

A questo punto, non sono preoccupato per queste funzionalità aggiuntive. Solo curioso di sapere perché sto ottenendo un errore make.

+0

un po 'estraneo considerando che si desidera crearlo da solo, ma è 'brew install python3' aiutarti? – Arqu

+1

Sì, sono andato con Homebrew ma rimango curioso di costruirlo. – lukejanicke

+0

L'aggiunta di '--enable-universalsdk' a' configure' risolve il problema? –

risposta

5

Risolto.

Nell'uscita di ./configure, ho notato un riferimento a /Applications/Xcode-beta.app/Contents/Developer/. Ho installato Xcode 8 (beta) alcuni giorni fa. Dopo il passaggio di nuovo ai normali strumenti della riga di comando (con Xcode 7.3.1)

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 

make riuscito. Non perfettamente.

Python build finished successfully! 
The necessary bits to build these optional modules were not found: 
_dbm     _gdbm     _sqlite3   
_ssl     nis     ossaudiodev   
spwd     zlib          
To find the necessary bits, look in setup.py in detect_modules() for the module's name. 

Failed to build these modules: 
_lzma     _tkinter 

Spero di non aver bisogno di quei moduli.

Ho inserito l'output completo di ./configure e make in questo Gist. Non ho incluso l'output per make install perché era troppo lungo e sembrava ripetere solo gli avvisi e gli errori di make.

Note

  • non ho usato --enable-framework o --enable-universalsdk.
+0

Ho ricevuto un errore simile, forse per un motivo diverso, sebbene con Xcode 8 (su macOS Sierra 10.12.6). Ciò che ha funzionato nel mio caso è stato posizionare i percorsi predefiniti ('/ usr/...') prima di MacPorts (riguardo 'gcc'), e la pulizia con' make distclean' all'interno del [repository CPython] (https://github.com)/python/CPython). –

+0

Correlati: https://stackoverflow.com/a/36790088/1959808 –

5

Penso che una soluzione migliore sia xcode-select --install.

Se si aggiorna Xcode su 8 (beta), è necessario eseguire di nuovo xcode-select --install per installare tutti gli strumenti di sviluppo con esso.

Mi sono imbattuto nello stesso problema del tuo e posso installare python con brew con Xcode8 dopo aver eseguito xcode-select --install.

Spero che possa aiutare gli altri con lo stesso problema qui.

+0

Grazie. Stavo ricevendo il simbolo non trovato: _getentropy e questo mi ha aiutato a risolvere il problema e continuare con l'installazione di python3 (brew install --upgrade python3). – apadana