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

Windows下Python3.9安装requirements.txt时Pillow依赖报错求助

问题核心原因

你碰到的报错和zlib安装状态、Python3.9兼容性没有直接关系,核心触发逻辑是:pip在解析requirements.txt的依赖时,拉取到了8.2版本以前的老旧Pillow安装包。
这类老版本Pillow发布时Python3.9还未正式上线,本身没有提供Windows平台的预编译wheel安装包,pip只能尝试从源码本地编译。源码编译Pillow需要本地提前配置完整的C++编译环境、zlib/libjpeg等所有图像依赖库的头文件和静态链接库,你用conda装的zlib没有把编译需要的头文件路径加到pip的识别路径里,自然会报找不到zlib的错误,完全没必要硬啃源码编译的坑。
你本地原本安装的Pillow 9.1.1是完全适配Python3.9的正常版本,只是被pip在安装过程中卸载后,尝试装老版本失败才触发了回滚。报错里那句"Pillow does not yet support Python 3.9"是老版本Pillow的安装脚本里写死的固定提示,不代表新版Pillow不支持Python3.9。

可直接落地的解决步骤

按顺序操作即可,不需要配置复杂的编译环境:

  • 第一步:修改项目依赖文件的版本限制
    打开项目根目录下的requirements.txt,找到所有包含Pillow/pillow的行,不管后面写的什么版本固定规则(比如Pillow==7.1.2这类),统一改成Pillow>=9.0.0,保存文件。
  • 第二步:提前安装适配环境的Pillow版本
    以管理员身份打开Anaconda Prompt,如果你给这个项目单独建了conda虚拟环境,先执行conda activate 你的环境名切到对应环境,之后执行命令安装适配版本:
    conda install pillow=9.1.1
    等安装完成后,执行pip list | findstr Pillow,确认输出的Pillow版本是9.1.1即安装正常。
  • 第三步:跳过Pillow安装剩余依赖
    切到项目根目录,执行依赖安装命令时加参数跳过已经装好的Pillow,避免pip重复拉取错误版本覆盖:
    python -m pip install --upgrade -r requirements.txt --ignore-installed pillow
    等命令执行完成就可以正常跑项目了。
  • 备用方案:如果不想改requirements.txt,也可以在执行完第二步安装好Pillow 9.1.1之后,直接给安装命令加参数不升级已满足要求的包:
    python -m pip install -r requirements.txt --upgrade-strategy only-if-needed
    这个参数会让pip判断已安装的Pillow 9.1.1满足版本要求的话,就不会卸载重装。
新手避坑提示
  • Windows系统下安装带C扩展的Python包(Pillow、numpy、opencv、scipy这类),优先用conda安装,conda会自动配齐所有底层系统依赖,不会出现缺头文件、缺库的编译错误;如果用pip安装,一定要等pip下载预编译的.whl包,看到"Building wheel for xxx"的提示就说明pip没找到对应你系统/Python版本的预编译包,直接终止命令换安装方式,不要等编译报错。
  • 不要随便按照网上的旧教程去装Visual Studio编译环境、手动编译源码包,对初学者来说环境配置复杂度极高,且极易把现有Python环境搞坏。
  • 如果执行命令时提示权限不足,直接关闭当前终端,右键选择「以管理员身份运行」后重新执行命令即可,不要手动去删除Python安装目录下的site-packages文件夹内容。

内容的提问来源于stack exchange,提问作者T.Lyons

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:39:20