MinGW环境Python3.9安装Pillow缺少zlib依赖报错解决方案
问题根因
MSYS2 MinGW64环境下执行pip安装时未匹配到对应环境的预编译wheel包,自动拉取源码编译Pillow,编译阶段缺少MinGW64架构的zlib等必需开发依赖,触发subprocess-exited-with-error和legacy-install-failure报错。另外你在PowerShell中调用MSYS2环境的Python时,不会自动加载MinGW64的依赖路径配置,就算装了依赖也会找不到对应文件。
解决步骤
- 如果你实际要用的是Windows原生Python(不是通过MSYS2 pacman安装的版本),不需要走源码编译流程,直接在PowerShell中先升级pip到最新版本,再执行安装即可自动拉取官方预编译的Windows wheel包:
python -m pip install --upgrade pip python -m pip install --prefer-binary Pillow
- 如果你确实需要使用MSYS2 MinGW64环境下的Python,按以下流程操作:
- 打开专门的MSYS2 MinGW64终端(从开始菜单找
MSYS2 MinGW 64-bit快捷方式启动,不要用MSYS、MinGW32终端,也不要直接用PowerShell操作),先执行which python确认路径,返回结果为/mingw64/bin/python才是正确的MinGW64版本Python。 - 执行pacman命令安装Pillow编译所需的全部MinGW64架构开发依赖:
注意必须选pacman -Syu --needed mingw-w64-x86_64-gcc mingw-w64-x86_64-zlib mingw-w64-x86_64-libjpeg-turbo mingw-w64-x86_64-libpng mingw-w64-x86_64-freetype mingw-w64-x86_64-lcms2 mingw-w64-x86_64-libwebp mingw-w64-x86_64-python-pipmingw-w64-x86_64-前缀的依赖包,不要选不带前缀的msys原生包,否则架构不匹配,编译时仍会报文件找不到错误。
3. 清理之前pip缓存的无效源码包,避免重复触发错误编译流程:python -m pip cache purge- 重新执行Pillow安装命令,参数指定优先使用预编译包,本地依赖齐全的情况下即使需要编译也能正常构建:
python -m pip install --prefer-binary Pillow - 打开专门的MSYS2 MinGW64终端(从开始菜单找
安装验证
安装完成后执行以下命令,无报错且正常输出版本号即为安装成功:
python -c "from PIL import Image; print('Pillow install success, version:', Image.__version__)"
内容的提问来源于stack exchange,提问作者user17441617
相关产品推荐
相关产品推荐

