在OS X上构建Python 3:[Python/importlib.h]错误133

luk*_*cke 8 python macos python-3.x osx-elcapitan

我正在尝试在OS X El Capitan(10.11.5)上构建Python(3.5.2).但是,当我尝试make它时,我遇到了一个错误.这个错误似乎与此有关_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 $ 
Run Code Online (Sandbox Code Playgroud)

你可以在GitHub上看到我的步骤.

直到make失败的完整终端输出在Gist中.


我完全承认这是一个学术练习,因为El Capitan附带Python 2.7.10,您可以使用官方OS X安装程序包或Homebrew轻松安装Python 3.5.2.

在Unix平台上使用Python的文档提供了构建说明.在Macintosh上使用Python的文档特别指出要使用OS X安装程序包.

但是,应该可以在Mac上构建.

运行Mac OS X的Macintosh上的Python原则上与任何其他Unix平台上的Python非常相似,但是还有一些额外的功能,例如IDE和Package Manager,值得指出.

此时,我并不担心这些附加功能.只是好奇我为什么会收到make错误.

luk*_*cke 5

固定.

在输出中./configure,我注意到了一个引用/Applications/Xcode-beta.app/Contents/Developer/.我几天前安装了Xcode 8(测试版).切换回常规命令行工具(使用Xcode 7.3.1)后

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Run Code Online (Sandbox Code Playgroud)

make成功了.不完美.

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 
Run Code Online (Sandbox Code Playgroud)

我希望我不需要那些模块.

我已经把全力输出./configure,并make在此要点.我没有包含输出,make install因为它太长,似乎只重复警告和错误make.

笔记

  • 我没有使用--enable-framework--enable-universalsdk.


Dbo*_*iao 5

我认为更好的解决方案是xcode-select --install.

如果您将Xcode更新为8(测试版),则必须xcode-select --install再次运行以安装所有构建工具.

我遇到了与你相同的问题,我可以在运行后通过brew与Xcode8成功安装python xcode-select --install.

我希望这会帮助其他人解决同样的问题.