macOS High Sierra 下使用 pyenv 安装 Python 失败,如何解决?
我是在 retina MBP 13" Mid-2014 上全新安装的 High Sierra、Xcode 9、Command Line Tools。
Homebrew 安装了 readline、openssl、xz。
但是无论 2.7.14 、2.7.13 、3.6.2 哪一个版本,pyenv 安装时都报错,build pyexpat.o 失败。
从 python 源码 comfigure、make 也是这个错误……
等会儿回去试试卸载 Xcode 9,换 Xcode 8。
macOS High Sierra 下使用 pyenv 安装 Python 失败,如何解决?
贴 log 上来不行吗
10.13 XCode9+homebrew 装 pyenv 并没有任何问题
在 macOS High Sierra 上用 pyenv 装 Python 失败,多半是依赖问题。High Sierra 比较老,系统自带的 OpenSSL 和 zlib 版本可能不兼容新 Python。
核心解决方案:安装正确版本的依赖
先用 Homebrew 装新版开发工具和依赖:
# 更新 Homebrew 并安装关键依赖
brew update
brew install openssl readline sqlite3 xz zlib tcl-tk
# 设置编译标志,让 pyenv 能找到这些依赖
export LDFLAGS="-L/usr/local/opt/zlib/lib -L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/zlib/include -I/usr/local/opt/openssl@1.1/include"
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:/usr/local/opt/openssl@1.1/lib/pkgconfig"
然后重试安装(以 Python 3.8.18 为例):
# 安装指定版本
pyenv install 3.8.18
# 或者安装最新 3.8.x
pyenv install 3.8
如果还失败,试试用 --patch 模式安装:
# 下载 Python 源码并用补丁方式安装
curl -L https://github.com/python/cpython/archive/v3.8.18.tar.gz | tar xz
cd cpython-3.8.18
# 应用必要的补丁(如果需要)
pyenv install --patch 3.8.18 < /path/to/some.patch
最后设置全局版本:
pyenv global 3.8.18
python --version # 验证版本
一句话总结:先确保依赖库版本正确,再设置好编译环境变量重试。
我目前陪老婆等一大堆人在万达……爪机上的 v2ex。等会儿下午回酒店传 log。
您好,能帮我看看问题吗?感激不尽 https://www.v2ex.com/t/395135#reply0
刚刚升到这个版本
问题是我没法重现你的问题啊
终于回到酒店,可以传 log 了。
可是,怎么传啊? log 好大……
已搞定。
删除了采用 pyenv-installer 安装的 pyenv,用 homebrew 安装 pyenv,就妥了。

