M1 macOS下Homebrew安装的pyenv安装Python3.9.6出现编译报错
pyenv安装Python 3.9.6报错解决方案
核心问题是Python编译时无法自动识别Homebrew安装的openssl、readline等依赖的库和头文件路径,按以下步骤操作即可解决:
1. 安装必备依赖
首先执行如下命令确认所有编译需要的依赖都已安装:brew install openssl@1.1 readline zlib bzip2 sqlite3 xz
2. 临时指定编译参数执行安装
执行如下整段命令,手动指定依赖路径后再执行安装:
export LDFLAGS="-L$(brew --prefix openssl@1.1)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib" export CPPFLAGS="-I$(brew --prefix openssl@1.1)/include -I$(brew --prefix readline)/include -I$(brew --prefix zlib)/include" export PKG_CONFIG_PATH="$(brew --prefix openssl@1.1)/lib/pkgconfig:$(brew --prefix readline)/lib/pkgconfig:$(brew --prefix zlib)/lib/pkgconfig" pyenv install 3.9.6
3. 永久配置避免后续重复问题
如果之后还要使用pyenv安装其他Python版本,可以将上述环境变量写入你的shell配置文件,一劳永逸:
- 若使用zsh(MacOS默认shell),编辑
~/.zshrc文件,将上述3行export命令添加到文件末尾,执行source ~/.zshrc生效 - 若使用bash,编辑
~/.bash_profile或~/.bashrc,添加完成后执行source ~/.bash_profile生效
同时建议将pyenv的执行路径加入PATH,避免后续出现pip不在PATH的警告,同样在上述shell配置文件中添加如下内容:export PATH="$HOME/.pyenv/shims:$PATH"
4. 验证安装
安装完成后执行pyenv versions,即可看到3.9.6版本已在可用列表中,可根据需要使用pyenv global 3.9.6设置全局版本,或pyenv local 3.9.6设置当前目录专属版本。
内容的提问来源于stack exchange,提问作者Anzhari
相关产品推荐
相关产品推荐

