You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1(OS X 12.4)下pyenv安装Python3.8.6失败求助

问题描述

我遇到了很多用户都碰到过的错误,不管试什么方法,安装Python3.8.6时都会反复出现相同报错,恳请各位帮忙。执行pyenv install 3.8.6的详细报错日志如下:

pyenv install 3.8.6                                   ✔  9423  15:42:52
python-build: 使用Homebrew的openssl@1.1
python-build: 使用Homebrew的readline
正在下载Python-3.8.6.tar.xz...
-> https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz
正在安装Python-3.8.6...
正在修补文件 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst
正在修补文件 configure
正在修补文件 configure.ac
python-build: 使用Homebrew的readline
python-build: 使用Xcode SDK的zlib

构建失败(OS X 12.4,使用python-build 20180424)

可查看或清理工作目录:/var/folders/n9/9hllxbjs5dg0byfs43j5fbdm0000gn/T/python-build.20230217154339.44173
结果已记录到:/var/folders/n9/9hllxbjs5dg0byfs43j5fbdm0000gn/T/python-build.20230217154339.44173.log

最后10行日志:
DYLD_LIBRARY_PATH=/var/folders/n9/9hllxbjs5dg0byfs43j5fbdm0000gn/T/python-build.20230217154339.44173/Python-3.8.6 ./python.exe -E -S -m sysconfig --generate-posix-vars ;\
    if test $? -ne 0 ; then \
        echo "生成posix变量失败" ; \
        rm -f ./pybuilddir.txt ; \
        exit 1 ; \
    fi
dyld[55035]: 在扁平命名空间中找不到符号 '_libintl_bindtextdomain'
/bin/sh: 第1行: 55035 中止陷阱: 6           DYLD_LIBRARY_PATH=/var/folders/n9/9hllxbjs5dg0byfs43j5fbdm0000gn/T/python-build.20230217154339.44173/Python-3.8.6 ./python.exe -E -S -m sysconfig --generate-posix-vars
生成posix变量失败
make: *** [pybuilddir.txt] 错误 1

解决方法

这个报错是因为编译时找不到gettext库的核心符号,在macOS 12+版本安装Python3.8.x这类旧版本时普遍存在,以下是几种靠谱的解决办法:

1. 指定gettext路径编译

先通过Homebrew安装gettext:

brew install gettext

然后用环境变量指定路径执行安装:

LDFLAGS="-L$(brew --prefix gettext)/lib" CPPFLAGS="-I$(brew --prefix gettext)/include" pyenv install 3.8.6

2. 更新pyenv及python-build

你的python-build版本是20180424,过于老旧,更新后能修复很多兼容性问题:

pyenv update

更新完成后重新执行安装命令:

pyenv install 3.8.6

3. 临时覆盖系统环境变量

如果前两种方法无效,尝试临时把Homebrew的gettext优先级设为最高:

export PATH="$(brew --prefix gettext)/bin:$PATH"
export LDFLAGS="-L$(brew --prefix gettext)/lib"
export CPPFLAGS="-I$(brew --prefix gettext)/include"
export PKG_CONFIG_PATH="$(brew --prefix gettext)/lib/pkgconfig"
pyenv install 3.8.6

内容的提问来源于stack exchange,提问作者M-WRI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:03:36