在macOS 14.2.1上用asdf安装Python3.12.1失败及报错求助
解决macOS Sonoma 14.2.1下asdf安装Python 3.12.1的构建失败问题
方案一:禁用gettext关联编译
第一个链接器错误源于Python构建时试图链接brew安装的gettext库,与系统locale库冲突。直接在安装时强制禁用gettext即可规避:
- 先恢复之前移除的gettext(避免后续文件缺失错误):
brew install gettext - 带编译参数执行asdf安装命令:
ASDF_PYTHON_BUILD_EXTRA_ARGS="--disable-gettext" asdf install python 3.12.1
方案二:清理缓存并指定依赖路径
缓存文件或依赖路径配置混乱也会导致构建失败,按以下步骤操作:
- 删除上次失败的构建缓存目录:
若不确定缓存路径,直接清理asdf的Python下载缓存:rm -rf /var/folders/qx/vjzng4rs2pd9w20rh3x_fr3w0000gn/T/python-build.20240129095442.33260rm -rf ~/.asdf/downloads/python - 确保Xcode命令行工具是最新版本:
xcode-select --install - 重新安装Python依赖的brew包:
brew install openssl@3 readline ncurses zlib - 带完整依赖路径参数安装Python:
env PATH="$(brew --prefix openssl@3)/bin:$(brew --prefix readline)/bin:$(brew --prefix ncurses)/bin:$(brew --prefix zlib)/bin:$PATH" \ LDFLAGS="-L$(brew --prefix openssl@3)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix ncurses)/lib -L$(brew --prefix zlib)/lib" \ CPPFLAGS="-I$(brew --prefix openssl@3)/include -I$(brew --prefix readline)/include -I$(brew --prefix ncurses)/include -I$(brew --prefix zlib)/include" \ ASDF_PYTHON_BUILD_EXTRA_ARGS="--disable-gettext" \ asdf install python 3.12.1
方案三:更新asdf-python插件
旧版本的asdf-python插件可能存在Sonoma兼容性问题,先更新插件再尝试安装:
asdf plugin update python asdf install python 3.12.1
方案四:临时使用pyenv过渡(可选)
若以上方法均无效,可临时用pyenv完成Python安装,后续再切换回asdf:
brew install pyenv pyenv install 3.12.1
内容的提问来源于stack exchange,提问作者Dorian
相关产品推荐
相关产品推荐

