[英]Building Python 3 on OS X: [Python/importlib.h] Error 133
我正在尝试在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 $
你可以在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
错误。
固定。
在./configure
的输出中,我注意到对/Applications/Xcode-beta.app/Contents/Developer/
的引用。 我几天前安装了Xcode 8(测试版)。 切换回常规命令行工具(使用Xcode 7.3.1)后
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
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
我希望我不需要那些模块。
我已经把全力输出./configure
,并make
这个要点 。 我没有包含make install
的输出,因为它太长了,似乎只重复make
的警告和错误。
笔记
--enable-framework
或--enable-universalsdk
。 我认为更好的解决方案是xcode-select --install
。
如果您将Xcode更新为8(测试版),则必须再次运行xcode-select --install
以安装所有构建工具。
我遇到了与你相同的问题,我可以在运行xcode-select --install
后通过brew使用Xcode8成功安装python。
我希望这会帮助其他人解决同样的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.