Anaconda无法用PIL,我用Pillow替代

2023-05-16

1 问题描述

我想利用文字生成图片信息,以方便运行 LATEX 的加载图片的demo。我自然想到了利用Python来执行这个任务,因为它是我使用过的众多编程语言中的最喜欢的语言之一,可以用爱不释手形容都不为之过。于是从网络搜到一个解决方案,将代码保存为genFig.py:

# -*- coding: utf-8 -*-
import os
import Image, ImageFont, ImageDraw

text = u"这是一段测试文本,test 123。"

im = Image.new("RGB", (300,50),(255,255,255))
dr = ImageDraw.Draw(im)
font = ImageFont.truetype(os.path.join("fonts","simsun.ttc"),18)

dr.text((10,5),text, font=font, fill="#000000")

im.show()
im.save("t.png")

于是接着在命令行中输入python genFig.py,给出错误提示:没有moduel image。我自然就想到了没安装该包,因为我使用的是Anaconda套件,亦即该套件没有安装包image。于是我就利用Anaconda安装python包的方法,采用命令conda install image,回复的是找不到该包。我判断PIL是一个整体,需要整体安装。于是我在pil网站找到了PIL的安装文件,如下图:
这里写图片描述
这是一个exe文件,不受conda的托管。于是,按照通常Windows系统下软件的安装方法,就把其成功安装了,参见下面的图:
这里写图片描述
这里写图片描述

重新回到console中,运行程序genFig.py,如下图:
这里写图片描述
可以看出,仍然出错。这里面肯定有什么原因,包的安装也不如Ubuntu中来的方便,安装后还是不能运行上述程序。我又利用import _imaging检查了一下,也没发现上面异常,如下图:
这里写图片描述

带着小小的失望,我就继续在网络看别人对上述错误的解决方法是什么。

2 解决方法

在网络上搜索了一会,发现好多人在Ubuntu中也遇到相应的问题,因此给出的方案都是针对Unix或者Ubuntu下面的。但是,我在stackoverflow for c module is not installed页面上的一个不起眼的语句上发现了Pillow,如下图:
这里写图片描述
我想Pillow也许是运行上节代码的替代方案。那就大胆地探索吧!

2.1 Pillow的安装

从pythonlibs网站找到Pillow的安装文件,如下图:
这里写图片描述
将其下载到一个文件夹中,然后在该文件夹中启动console程序,在其中运行命令pip install Pillow-3.1.0-cp27-none-win32.whl安装,如下图:
这里写图片描述
因为whl格式的文件需要采用pip程序来执行安装,这是模仿了Linux系统下面的包的安装方式。

2.2 将第1节代码变为Pillow下的库的使用

注意:要想使用Pillow库中的module (Image, ImageFont, ImageDraw etc.),需使用如下命令引入:

from PIL import Image, ImageFont, ImageDraw

于是,我们就将第1节代码改为:

# -*- coding: utf-8 -*-
import os
from PIL import Image, ImageFont, ImageDraw

text = u"这是一段测试文本,test 123。"

im = Image.new("RGB", (300,50),(255,255,255))
dr = ImageDraw.Draw(im)
font = ImageFont.truetype(os.path.join("fonts","simsun.ttc"),18)

dr.text((10,5),text, font=font, fill="#000000")

im.show()
im.save("t.png")

2.3 运行结果

然后再在命令行中执行经过修改后的2.2节中代码,可以看到执行成功,如下图:
这里写图片描述

3 总结

看来,PIL确实是一个好用的图形处理库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Anaconda无法用PIL,我用Pillow替代 的相关文章

随机推荐

  • OPENVIDU实现网络质量检测统计

    1 前言 在WebRTC中 xff0c 我们需要对当前的音视频情况进行监控 xff0c 便于对音视频质量有一个了解 xff0c 同时可以用来分析定位音视频卡顿模糊等问题 WebRTC提供了一个标准的解决方案 xff1a 标准详情 基于此标准
  • OPENVIDU实现同一用户同时发布多个流媒体

    1 前言 OPENVIDU这个库暂时是不支持在同一个会议室里面 xff0c 同一个用户同时发布多个媒体流的 但在实际工作中有这种需要 xff0c 比如用户A既要发布摄像机媒体流 xff0c 同时也要发布屏幕共享媒体流 下面介绍一种简单的方法
  • Softmax回归模型

    用到的数学概念补充 凸集 xff0c 凸函数 xff0c 黑塞矩阵 简介 节中 xff0c 我们介绍Softmax回归模型 xff0c 该模型是logistic回归模型在多分类问题上的推广 xff0c 在多分类问题中 xff0c 类标签 可
  • Ubuntu记录用户IP访问操作信息工具

    1 用脚本时刻记录用户IP访问操作信息工具 xff0c 用shell脚本去记录 2 每隔一天存放用户信息 xff0c 记录操作时间 xff0c 固定地方存放 脚本如下 在服务器环境变量中加入如下代码 vi etc profile bin b
  • webrtc系列之-像老鼠一样打洞

    众所周知 xff0c 本光头刚涉猎音视频不久 xff0c 所以很多东西都是边学边做的 xff0c 有说得不对的地方 xff0c 请各位多包涵 说穿透之前 xff0c 我们首先需要明白关于WEBRTC的一些概念 xff0c WEBRTC它是一
  • PHP的三种简单实用的传参方式

    首先声明 xff0c 本干货的观点仅代表个人观点 xff0c 拿出来和大家唠叨唠叨 最近在写代码的时候 xff0c 发现了一个有趣的事情 就是我创建了一个新的函数 xff0c 但是因为各种需求 xff0c 各种功能设计的原因 xff0c 函
  • apache rewrite(重定向)

    很多时候 xff0c 由于项目变更的需要 xff0c 我们会将一个网站的域名变更为另外一个域名 xff0c 又或者是一个地址转变为另外一个地址 而在项目里进行跳转并不是一个明智的选择 xff0c 这个时候我们就可以使用到apache的mod
  • 用nginx搭建http透明代理

    背景 代理我们经常听 xff0c 在技术层面我们谈论的代理往往是非透明代理 xff0c 那么既然有非透明代理那就存在有透明代理 我们先看看什么是透明代理 xff0c 引用百度百科的一句话可以描述明白 透明代理的意思是客户端根本不需要知道有代
  • 图片识别之验证码识别

    许多网站在进行某些操作前会要求输入验证码以此来抵御爬虫和攻击 此篇主要讲述如何通过代码来识别一些常见的验证码 以此探究图片识别的过程以及如何避免生成容易被识别的验证码 理论 图片识别的过程 取样本 清洗区分样本 提取样本特征 提取目标的特征
  • CSS(四)——三个盒子的动画效果

    三个盒子的动画效果 span class token selector lt head gt lt meta charset 61 34 UTF 8 34 gt lt meta http equiv 61 34 X UA Compatibl
  • linux C代码调用shell命令方法

    摘抄 xff1a https blog csdn net u010299133 article details 85637263 主要有三种方法 xff1a exec函数簇 xff0c system函数以及popen函数 xff0c 其中需
  • 导出WSL子系统并在服务器Docker上进行部署

    之前一直用的WSL开发 xff0c 后来因为业务需要 xff0c 得迁移到服务器上 xff0c 但是因为安装了很多依赖 xff0c 不想重新装系统 xff0c 所以选择将 WSL子系统打包 xff0c 并用Docker导入 一 WSL导出子
  • Mac OS下关闭本地TimeMachine备份节省磁盘空间

    当我们开启TimeMachine之后 xff0c 在使用外置磁盘时会把备份资料放在外置磁盘上 xff0c 但是某一天发现如下图所示的奇怪现象 xff0c 磁盘使用情况里面竟然有几十GB的 备份 文件 总共256GB容量 xff0c 所以万万
  • 凸函数

    基本介绍 凸函数是一个定义在某个向量空间的凸子集C xff08 区间 xff09 上的实值函数f xff0c 而且对于凸子集C中任意两个向量x1 x2 f x1 43 x2 2 xff08 f x1 43 f x2 2 于是容易得出对于任意
  • Update:Windows Server/Client 各版本信息及更新列表

    1 Windows 11 2 Windows 10 3 Windows nbsp Server 2016 2022
  • [BJWC2010] 严格次小生成树 简单梳理和整理

    https www luogu com cn problem P4180 这篇文章将会默认读者已经掌握了LCA xff0c kruskal等相关基础知识点 考虑最小生成树的 k r u s k
  • 使用Ubuntu22.04搭建k8s环境和一些k8s基础知识

    minikube搭建 基本环境 我使用virtualBox构建的ubuntu xff0c 选择4核4G内存minikube是一个K8S集群模拟器 xff0c 可以快速构建一个单节点的集群 xff0c 用于在本地测试和开发首先使用官方脚本安装
  • 为编辑器TeXworks添加命令biber

    目前 xff0c 在包biblatex日渐成为流行的参考文献处理机制下 xff0c 与其配合使用的编译命令biber也也就开始流行了 在console中手工输入这个命令编译没问题 xff0c 但显得不那么方便 最好将其集成到某个图形化的编辑
  • 一个简单的、基本的、完整的使用biblatex包的例子

    1 介绍 写论文离不开参考文献 xff0c 尤其是毕业论文 由相应的写作软件自动地管理这些参考文献 xff0c 并自动地呈现在论文中至关重要 大家都知道 xff0c 手工添加文献到论文中 xff0c 是枯燥乏味的 xff0c 更为致命的是这
  • Anaconda无法用PIL,我用Pillow替代

    1 问题描述 我想利用文字生成图片信息 xff0c 以方便运行 L A T E X 的加载图片的demo 我自然想到了利用Python来执行这个任务 xff0c 因为它是我使用过的众多编程语言中的最喜欢的语言之一 xff0c 可以用爱不释手