Python3.12 Windows环境下Pyheif等库安装失败求助
解决Windows下Python 3.12支持HEIC/HEIF格式的方案
方案1:使用pillow-heif(Pillow扩展)
pillow-heif是为Pillow打造的HEIC/HEIF支持插件,提供Windows预编译轮子,无需手动编译,适配Python 3.12。
安装步骤:
- 确保已安装Pillow:
pip install pillow - 安装pillow-heif:
pip install pillow-heif
- 确保已安装Pillow:
示例代码(转换HEIC为JPG并压缩):
from PIL import Image import pillow_heif # 注册HEIC格式支持 pillow_heif.register_heif_opener() # 打开HEIC文件 with Image.open("input.heic") as img: # 转换并保存为压缩后的JPG img.save("output.jpg", format="JPEG", quality=80)
方案2:手动安装pyheif预编译轮子
pyheif的pip安装失败多因缺少Windows二进制包,可直接下载对应版本的whl文件本地安装:
步骤:
- 下载适配Python 3.12、Windows 64位的pyheif预编译whl文件(注意选择后缀含
cp312-win_amd64的版本) - 本地安装:
pip install path/to/pyheif-xxx-cp312-win_amd64.whl - 配合Pillow使用需额外安装:
pip install pyheif-pillow-opener
- 下载适配Python 3.12、Windows 64位的pyheif预编译whl文件(注意选择后缀含
示例代码:
from PIL import Image import pyheif_pillow_opener # 打开HEIC文件 with Image.open("input.heic") as img: img.save("output.jpg", quality=75)
方案3:调用FFmpeg命令行工具(无Python库依赖)
如果上述库仍无法安装,可借助FFmpeg处理HEIC格式,Python通过subprocess调用命令行:
- 步骤:
- 下载Windows版FFmpeg并解压,将其bin目录添加到系统环境变量PATH
- Python中调用转换:
import subprocess # 单文件转换:HEIC转JPG并压缩 subprocess.run([ "ffmpeg", "-i", "input.heic", "-q:v", "2", # 压缩质量,1-31取值,值越小质量越高 "output.jpg" ], check=True) # 批量处理当前目录下的HEIC文件 import os for filename in os.listdir("."): if filename.endswith(".heic"): output_name = os.path.splitext(filename)[0] + ".jpg" subprocess.run([ "ffmpeg", "-i", filename, "-q:v", "3", output_name ], check=True)
内容的提问来源于stack exchange,提问作者Ardean Bima Saputra
相关产品推荐
相关产品推荐

