在 OS X 上构建 Python 3:[Python/importlib.h] 错误 133
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 $
你可以看到我的步骤on GitHub。
直到 make
失败的完整终端输出在 Gist.
中
我完全承认这是一个学术练习,因为 El Capitan 带有 Python 2.7.10,您可以使用官方 Python 3.5.2 轻松安装 OS X 安装程序包或通过 Homebrew。
Using Python on Unix platforms provides build instructions. The documentation for Using Python on a Macintosh 的文档明确说明要使用 OS X 安装程序包。
但是,应该可以在 Mac.
上构建
Python on a Macintosh running Mac OS X is in principle very similar to Python on any other Unix platform, but there are a number of additional features such as the IDE and the Package Manager that are worth pointing out.
此时,我并不担心那些附加功能。只是好奇为什么我会收到 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
的完整输出放在这个 Gist 中。我没有包括 make install
的输出,因为它太长而且似乎只重复 make
.
的警告和错误
注释
- 我没有使用
--enable-framework
或 --enable-universalsdk
。
我认为更好的解决方案是 xcode-select --install
。
如果您将 Xcode 更新到 8(测试版),您必须再次 运行 xcode-select --install
才能安装所有构建工具。
我 运行 遇到了和你一样的问题,我可以在 运行 宁 xcode-select --install
之后通过使用 Xcode8 的 brew 成功安装 python。 =13=]
我希望它能帮助其他人解决同样的问题。
我正在尝试在 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 $
你可以看到我的步骤on GitHub。
直到 make
失败的完整终端输出在 Gist.
我完全承认这是一个学术练习,因为 El Capitan 带有 Python 2.7.10,您可以使用官方 Python 3.5.2 轻松安装 OS X 安装程序包或通过 Homebrew。
Using Python on Unix platforms provides build instructions. The documentation for Using Python on a Macintosh 的文档明确说明要使用 OS X 安装程序包。
但是,应该可以在 Mac.
上构建Python on a Macintosh running Mac OS X is in principle very similar to Python on any other Unix platform, but there are a number of additional features such as the IDE and the Package Manager that are worth pointing out.
此时,我并不担心那些附加功能。只是好奇为什么我会收到 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
的完整输出放在这个 Gist 中。我没有包括 make install
的输出,因为它太长而且似乎只重复 make
.
注释
- 我没有使用
--enable-framework
或--enable-universalsdk
。
我认为更好的解决方案是 xcode-select --install
。
如果您将 Xcode 更新到 8(测试版),您必须再次 运行 xcode-select --install
才能安装所有构建工具。
我 运行 遇到了和你一样的问题,我可以在 运行 宁 xcode-select --install
之后通过使用 Xcode8 的 brew 成功安装 python。 =13=]
我希望它能帮助其他人解决同样的问题。