Construire Python 3 sur OS X: [Python / importlib.H] erreur 133

j'essaie de construire Python (3.5.2) sur OS X El Capitan (10.11.5). Cependant, je tombe sur une erreur quand j'essaie de make. L'erreur semble être lié à _freeze_importlib.

/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 $ 

Vous pouvez voir mon étapes GitHub.

la sortie complète du Terminal jusqu'à la make fail est dans un Gist.


je reconnais pleinement qu'il s'agit d'un exercice académique, comme El Capitan vient avec Python 2.7.10 et vous pouvez installez facilement Python 3.5.2 avec le paquet officiel de l'installateur OS X ou via Homebrew.

la documentation pour utiliser Python sur les plateformes Unix fournit des instructions de construction. La documentation pour utiliser Python sur un Macintosh spécifie d'utiliser le paquet de l'installateur OS X.

cependant, il devrait être possible de construire sur Mac.

Python sur un Macintosh l'exécution de Mac OS X est en principe très similaire à Python sur N'importe quelle autre plate-forme Unix, mais il y a un certain nombre de fonctionnalités supplémentaires telles que L'IDE et le Gestionnaire de paquets qui valent la peine d'être soulignées.

pour l'instant, je ne m'inquiète pas de ces fonctionnalités supplémentaires. Juste curieux de savoir pourquoi je reçois un make erreur.

8
demandé sur lukejanicke 2016-07-04 19:14:35

2 réponses

corrigé.

Dans la sortie de ./configure, j'ai remarqué une référence à /Applications/Xcode-beta.app/Contents/Developer/. J'ai installé Xcode 8 (beta) il y a quelques jours. Après le retour aux outils de ligne de commande réguliers (avec Xcode 7.3.1)

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

make réussi. Pas parfaitement.

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 

j'espère que je n'ai pas besoin de ces modules.

j'ai mis la sortie complète de ./configure et make dans ce Gist. Je ne comprend pas la sortie de make install comme il était trop long et semblait ne répéter que les avertissements et les erreurs de make.

Notes

  • je n'ai pas utiliser --enable-framework ou --enable-universalsdk.
5
répondu lukejanicke 2016-07-04 19:48:03

je pense que la meilleure solution est xcode-select --install.

si vous mettez à jour Xcode en 8 (beta), vous devez lancer xcode-select --install de nouveau pour installer tous les outils de construction.

j'ai rencontré le même problème que le vôtre et je peux installer avec succès python via brew avec Xcode8 après avoir exécuté xcode-select --install.

j'espère que cela aidera d'autres avec la même question ici.

5
répondu DboyLiao 2016-09-21 02:52:58