ubuntu16.04 自带python版本为python2.7 和 python3.5. 但pyheif要求版本为python3.6+, 原话为:Python 3.6+ interface to libheif library using CFFI。 所以需要安装python3.6及以上版本。步骤如下:
配置依赖环境,如果不进行这步可能会出现一些问题
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev
解压下载的包,在这之前你可以先mv你的包到指定位置解压
tar zxvf Python-3.7.11 (我下的是3.7.11, python官网 :python.org, 找你需要的版本就行)
建立安装的目录
sudo mkdir -p /usr/local/python3
编译安装
# ./configure --prefix=/usr/local/python3 --enable-optimizations
# make
# sudo make install
删除软链接
rm -rf /usr/bin/python3
rm -rf /usr/bin/pip3
建立新的指向python3.7的软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
至此, python3.7就安装完成了,现在开始安装pyheif
pip3 install pyheif
这时报错了:subprocess.CalledProcessError: Command ‘(‘lsb_release‘, ‘-a‘)‘ returned non-zero exit status 1
解决办法:cp /usr/lib/python3/dist-packages/lsb_release.py /usr/local/python3/lib/python3.7/
重新安装: pip3 install pyheif 成功
安装pillow : pip3 install Pillow
测试:
from PIL import Image
import pyheif
heif_file = pyheif.read("moto-cover.heic")
image = Image.frombytes(
heif_file.mode,
heif_file.size,
heif_file.data,
"raw",
heif_file.mode,
heif_file.stride,
)
image.save("moto-cover.jpg", "JPEG")
运行:成功将heic格式图片转换成了jpg。
结束!!!
该博客详细记录了在Ubuntu16.04上安装Python3.7的过程,包括配置依赖、解压安装、创建软链接等步骤,并解决了安装pyheif模块时遇到的问题。最后成功将heic图片转换为jpg。
3448

被折叠的 条评论
为什么被折叠?



