首页 > 编程语言 >macOS 下使用 pyenv 安装 python 2.n.p 报错,ERROR: The Python zlib extension was not compiled. Missing the zl

macOS 下使用 pyenv 安装 python 2.n.p 报错,ERROR: The Python zlib extension was not compiled. Missing the zl

时间:2024-03-12 15:11:42浏览次数:22  
标签:opt CPPFLAGS macOS python zlib pyenv 报错 export

TL; DR

执行 brew install zlib 安装 zlib 之后,根据安装信息提示将一下三行变量

export LDFLAGS="-L/opt/homebrew/opt/zlib/lib"
export CPPFLAGS="-I/opt/homebrew/opt/zlib/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/zlib/lib/pkgconfig"

加入到 ~/.zshrc 中,如果 shellbash 则加入 ~/.bashrc 中,以此类推,不确定当前默认的 shell 是哪一个,则执行 echo $0 查看输出结果。

source ~/.zshrc 或重新启动终端以后,再次执行安装指令即可。

分析

报错信息如下:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named zlib
ERROR: The Python zlib extension was not compiled. Missing the zlib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems


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

Inspect or clean up the working tree at /var/folders/rl/lhvcg2c15_g8ns9nsc6kx85c0000gn/T/python-build.20240312102055.43861
Results logged to /var/folders/rl/lhvcg2c15_g8ns9nsc6kx85c0000gn/T/python-build.20240312102055.43861.log

Last 10 log lines:
rm -f /Users/xxx/.pyenv/versions/2.7.18/share/man/man1/python.1
(cd /Users/xxx/.pyenv/versions/2.7.18/share/man/man1; ln -s python2.1 python.1)
if test "xno" != "xno"  ; then \
                case no in \
                        upgrade) ensurepip="--upgrade" ;; \
                        install|*) ensurepip="" ;; \
                esac; \
                DYLD_LIBRARY_PATH=/var/folders/rl/lhvcg2c15_g8ns9nsc6kx85c0000gn/T/python-build.20240312102055.43861/Python-2.7.18 ./python.exe -E -m ensurepip \
                        $ensurepip --root=/ ; \
        fi

根据 wiki提供的解决 zlib 包导致安装异常信息,主要诱因是编译目标 python 版本时,引用 zlib 的库函数异常了。同时官方也给出一个解决方案:

CPPFLAGS="-I$(brew --prefix zlib)/include" pyenv install -v 3.7.0

执行这一个命令后,我还是得到了同样的报错信息。于是回到这个命令本身,执行命令前覆写的环境变量 CPPFLAGS="-I$(brew --prefix zlib)/include",了解 CPP 的开发者应该知道,这里是提供了后续编译使用到的头文件的库目录,于是根据 wiki 上下文,主要是缺失 OpenSSL 段落中的信息,我看到了 CPPFLAGSLDFLAGS

再跑去 Google 了一圈,确实如这篇回答所说,现在装完 zlib 后会提示有三个变量可以进行选择性配置,装好需要配置一下路径,之后便能正常安装。

export LDFLAGS="-L/usr/local/opt/zlib/lib"
export CPPFLAGS="-I/usr/local/opt/zlib/include"
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig"

标签:opt,CPPFLAGS,macOS,python,zlib,pyenv,报错,export
From: https://www.cnblogs.com/z1645444/p/18068349

相关文章

  • maven一些报错处理
    (1)Malformed\uxxxxencoding.报错解决使用everthing全局搜了resolver-status.properties文件,或者找到本地仓库的目录,删除掉这些文件。在window下可以使用这个方式,将以下改为clean.bat执行.仓库换为自己的仓库@echooffremcreatebyNettQunrem仓库路径setREPOSITORY......
  • 初始配置:IntelliJ Android无法运行项目并报错Error: Module not specified
    最近重拾android,想趁复试前搞一个东西出来,顺便给毕设做好准备。写代码前得让IDEA把初始的空项目在虚拟机上运行一下,看看开发环境是不是有什么问题,果然每次过一段时间重开,哪怕我上一次关闭时啥也没碰,总得出点配置上的小问题。Error:Modulenotspecified未指定模块错误,但点......
  • Apple Safari 17.4 - macOS 专属浏览器 (独立安装包下载)
    AppleSafari17.4-macOS专属浏览器(独立安装包下载)适用于macOSVentura和macOSMonterey的Safari浏览器17请访问原文链接:https://sysin.org/blog/apple-safari-17/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org之前Safari浏览器伴随macOS更新一起......
  • 在不受支持的 Mac 上安装 macOS Sonoma (OpenCore Legacy Patcher v1.4)
    在不受支持的Mac上安装macOSSonoma(OpenCoreLegacyPatcherv1.4)InstallmacOSonunsupportedMacs请访问原文链接:https://sysin.org/blog/install-macos-on-unsupported-mac/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgOpenCoreLegacyPatcher1.4.2ch......
  • pycharm中使用pyplot时报错MatplotlibDeprecationWarning
    在pycharm中使用Matplotlib中的pyplot时,运行代码报错:MatplotlibDeprecationWarning:SupportforFigureCanvaseswithoutarequired_interactive_frameworkattributewasdeprecatedinMatplotlib3.6andwillberemovedtwominorreleaseslater.第一步,点击pycharm菜单......
  • 一次解决Docker内java变量原因导致执行Kafka查询消费报错经历
    引言企业内对某设备小集群进行状态巡检(包括内存、磁盘、CPU、集群状态、集群Docker内接口状态、服务状态、Kafka消费情况监控)。由于需要将状态的结果通过命令展示在命令行中,且查询命令较多,于是打算脚本解决。在写脚本时,查询内容包括了宿主机和docker内的服务都需......
  • kylin v10报错:/usr/lib64/security/pam_console.so: cannot open
    报错如下:PAMunabletodlopen(/usr/lib64/security/pam_console.so):/usr/lib64/security/pam_console.so:cannotopenshaaredobjectfile:No>PAMaddmingfaultymodule:/usr/lib64/security/pam_console.so原因分析:麒麟V10环境没有“pam_console.so”动态库。pam_......
  • 技术笔记(6)SourceTree Push到github时报错
    技术笔记(6)SourceTreePush到github时报错remote:SupportforpasswordauthenticationwasremovedonAugust13,2021.Pleaseuseapersonalaccesstokeninstead.​即无法通过输入账号密码的方式来验证,需要使用个人token来验证。昨晚搜到了很多无效方法,搞得有点头痛了,记......
  • Kubeadm init 自遇报错合集及解决方案
    kubeadminit命令:kubeadminit\--image-repositoryregistry.aliyuncs.com/google_containers\--kubernetes-version=v1.28.2\--apiserver-advertise-address=(masternodeipaddress)\--pod-network-cidr=192.244.0.0/16\--service-cidr=192.96.0......
  • CentOS8使用yum报错:Cannot prepare internal mirrorlist: No URLs in mirrorlist
    CentOS8使用yum报错:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist报错信息:错误:为仓库'appstream'下载元数据失败:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist 出现这个问题的原因是:在2022年1月31日,CentOS从官方镜像中移除CentOS8的所......