macOS 12.6(M1 Pro)下pyenv安装Python3.10遇特殊错误
问题:pyenv安装Python 3.10.7失败(macOS 12.6)
我尝试使用pyenv安装Python 3.10.7,在遵循相关帖子的置顶解决方案后仍遇到以下错误:
Arashk@Arashks-MBP ~ % pyenv install 3.10.7 python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.10.7.tar.xz... -> https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tar.xz Installing Python-3.10.7... python-build: use readline from homebrew python-build: use zlib from xcode sdk BUILD FAILED (OS X 12.6 using python-build 20180424) Inspect or clean up the working tree at /var/folders/nm/zb8gvgds6nx448zw248vlg1c0000gn/T/python-build.20221025053833.56249 Results logged to /var/folders/nm/zb8gvgds6nx448zw248vlg1c0000gn/T/python-build.20221025053833.56249.log Last 10 log lines: File "/private/var/folders/nm/zb8gvgds6nx448zw248vlg1c0000gn/T/python-build.20221025053833.56249/Python-3.10.7/Lib/importlib/_common.py", line 52, in get_resource_reader return reader(spec.name) # type: ignore File "<frozen importlib._bootstrap_external>", line 548, in _check_name_wrapper File "<frozen importlib._bootstrap_external>", line 1081, in get_resource_reader File "/private/var/folders/nm/zb8gvgds6nx448zw248vlg1c0000gn/T/python-build.20221025053833.56249/Python-3.10.7/Lib/importlib/readers.py", line 2, in <module> import zipfile File "/private/var/folders/nm/zb8gvgds6nx448zw248vlg1c0000gn/T/python-build.20221025053833.56249/Python-3.10.7/Lib/zipfile.py", line 6, in <module> import binascii ImportError: dlopen(/private/var/folders/nm/zb8gvgds6nx448zw248vlg1c0000gn/T/python-build.20221025053833.56249/Python-3.10.7/build/lib.macosx-12.6-arm64-3.10/binascii.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace (_crc32) make: *** [install] Error 1
解决思路
- 更新pyenv及python-build:你的python-build版本是20180424,过于老旧,先执行更新:
brew update && brew upgrade pyenv - 安装/更新依赖库:确保编译所需的依赖是最新版本
brew install zlib openssl readline sqlite3 xz tcl-tk - 配置环境变量,强制使用Homebrew依赖:
在你的shell配置文件(~/.zshrc或~/.bashrc)中添加以下内容:
保存后重新加载配置:export LDFLAGS="-L$(brew --prefix zlib)/lib -L$(brew --prefix openssl@1.1)/lib" export CPPFLAGS="-I$(brew --prefix zlib)/include -I$(brew --prefix openssl@1.1)/include" export PKG_CONFIG_PATH="$(brew --prefix zlib)/lib/pkgconfig:$(brew --prefix openssl@1.1)/lib/pkgconfig"source ~/.zshrc # 若使用bash则执行source ~/.bashrc - 清理旧编译缓存并重新安装:
rm -rf /var/folders/nm/zb8gvgds6nx448zw248vlg1c0000gn/T/python-build.20221025053833.56249 pyenv install 3.10.7 - 若上述步骤无效,尝试直接指定zlib路径编译:
PYTHON_CONFIGURE_OPTS="--with-zlib=$(brew --prefix zlib)" pyenv install 3.10.7
内容的提问来源于stack exchange,提问作者ArashkG
相关产品推荐
相关产品推荐

