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

Mac OS X 13.4下使用pyenv无法编译任何Python版本求助

macOS 13.4升级后pyenv编译Python失败的问题

我最近升级到macOS 13.4,发现pyenv无法编译Python了(怀疑和系统升级有关,但不确定)。pyenv是通过brew安装的(版本2.3.19),之前能正常编译Python 3.10.4,但现在重新安装该版本时出现以下错误:

BUILD FAILED (OS X 13.4 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/python-build.20230611185357.74229
Results logged to /var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/python-build.20230611185357.74229.log

Last 10 log lines:
  File "/private/var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/python-build.20230611185357.74229/Python-3.10.12/Lib/ensurepip/__init__.py", line 287, in _main
    return _bootstrap(
  File "/private/var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/python-build.20230611185357.74229/Python-3.10.12/Lib/ensurepip/__init__.py", line 203, in _bootstrap
    return _run_pip([*args, *_PACKAGE_NAMES], additional_paths)
  File "/private/var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/python-build.20230611185357.74229/Python-3.10.12/Lib/ensurepip/__init__.py", line 104, in _run_pip
    return subprocess.run(cmd, check=True).returncode
  File "/private/var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/python-build.20230611185357.74229/Python-3.10.12/Lib/subprocess.py", line 526, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '["/private/var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/python-build.20230611185357.74229/Python-3.10.12/python.exe", "-W", "ignore::DeprecationWarning", "-c", "\nimport runpy\nimport sys\nsys.path = ['/var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/tmp18yfiiwu/setuptools-65.5.0-py3-none-any.whl', '/var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/tmp18yfiiwu/pip-23.0.1-py3-none-any.whl'] + sys.path\nsys.argv[1:] = ['install', '--no-cache-dir', '--no-index', '--find-links', '/var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/tmp18yfiiwu', '--root', '/', '--upgrade', 'setuptools', 'pip']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' died with <Signals.SIGABRT: 6>.
make: *** [install] Error 1 

(搞不懂为什么会操作.exe文件...)

之后我尝试了几乎所有能找到的方法:重新安装pyenv、重新安装xcode-select、更新Homebrew并升级所有包,但都没有效果。

尝试安装3.9、3.10和3.11的最新版本时:

  • 安装3.9和3.10时出现上述相同的.exe文件错误;
  • 安装3.11时出现链接错误:
Undefined symbols for architecture x86_64:
  "_libintl_bindtextdomain", referenced from:
      __locale_bindtextdomain in _localemodule.o
  "_libintl_dcgettext", referenced from:
      __locale_dcgettext in _localemodule.o
  "_libintl_dgettext", referenced from:
      __locale_dgettext in _localemodule.o
  "_libintl_gettext", referenced from:
      __locale_gettext in _localemodule.o
  "_libintl_setlocale", referenced from:
      __locale_setlocale in _localemodule.o
      __locale_localeconv in _localemodule.o
  "_libintl_textdomain", referenced from:
      __locale_textdomain in _localemodule.o
ld: symbol(s) not found for architecture x86_64
clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Programs/_freeze_module] Error 1

BUILD FAILED (OS X 13.4 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/python-build.20230611184550.63292
Results logged to /var/folders/5j/xmpgv80d18s_r90jvtyftpph0000gn/T/python-build.20230611184550.63292.log

Last 10 log lines:
  "_libintl_gettext", referenced from:
      __locale_gettext in _localemodule.o
  "_libintl_setlocale", referenced from:
      __locale_setlocale in _localemodule.o
      __locale_localeconv in _localemodule.o
  "_libintl_textdomain", referenced from:
      __locale_textdomain in _localemodule.o
ld: symbol(s) not found for architecture x86_64
clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Programs/_freeze_module] Error 1

解决思路

针对Python 3.9/3.10的.exe错误

  1. 设置编译环境变量
    执行以下命令临时配置环境,再尝试安装:

    export PYTHON_CONFIGURE_OPTS="--enable-framework"
    export MACOSX_DEPLOYMENT_TARGET=13.4
    pyenv install 3.10.4
    

    若生效,可将这两行添加到~/.zshrc或~/.bash_profile中永久生效。

  2. 清理pyenv缓存
    删除缓存的源码包,重新下载编译:

    rm -rf ~/.pyenv/cache/*
    

针对Python 3.11的链接错误(libintl符号缺失)

安装gettext依赖并指定编译链接路径:

brew install gettext
export LDFLAGS="-L$(brew --prefix gettext)/lib"
export CPPFLAGS="-I$(brew --prefix gettext)/include"
pyenv install 3.11.x  # 替换为具体版本号

通用排查步骤

  • 确保Xcode Command Line Tools为最新:
    xcode-select --install
    sudo xcode-select --reset
    
  • 检查Homebrew状态并修复问题:
    brew doctor
    
    根据提示完成修复后再尝试编译。

内容的提问来源于stack exchange,提问作者Zach Moshe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:47:01