一、前言

遇到客户给了一个需求,需要拼接多个图片,上网找到一个解决方式,不过是需要安装PIL的,相信安装过这个库的应该都遇到很多问题,接下来说说怎么解决。

我的环境是:

操作系统:win10 64bit

python版本:2.7.15

二、问题

1. 使用pip安装

使用命令:

pip install PIL

提示:

Could not find a version that satisfies the requirement PIL (from versions: )

No matching distribution found for PIL

2. 直接安装windows安装包

在python lib网站(http://effbot.org/downloads/#Imaging),可以下载PIL-1.1.7.win32-py2.7.exe,直接安装。

提示:Python version 2.7 required…

主要原因是安装这个的时候需要去注册表找python相关信息,也就是安装的时候是和当前有依赖的,可以下载网站上的脚本(http://effbot.org/zone/python-register.htm)来修复一下:

#

#script to register Python 2.0 or later for use with win32all#and other extensions that require Python registry settings#

#written by Joakim Löw for Secret Labs AB / PythonWare#

#source:#http://www.pythonware.com/products/works/articles/regpy20.htm

importsysfrom _winreg import *

#tweak as necessary

version = sys.version[:3]

installpath=sys.prefix

regpath= "SOFTWARE\\Python\\Pythoncore\\%s\\" %(version)

installkey= "InstallPath"pythonkey= "PythonPath"pythonpath= "%s;%s\\Lib\\;%s\\DLLs\\" %(

installpath, installpath, installpath

)defRegisterPy():try:

reg=OpenKey(HKEY_LOCAL_MACHINE, regpath)exceptEnvironmentError:try:

reg=CreateKey(HKEY_LOCAL_MACHINE, regpath)

SetValue(reg, installkey, REG_SZ, installpath)

SetValue(reg, pythonkey, REG_SZ, pythonpath)

CloseKey(reg)except:print "*** Unable to register!"

return

print "--- Python", version, "is now registered!"

return

if (QueryValue(reg, installkey) == installpath andQueryValue(reg, pythonkey)==pythonpath):

CloseKey(reg)print "=== Python", version, "is already registered!"

returnCloseKey(reg)print "*** Unable to register!"

print "*** You probably have another Python installation!"

if __name__ == "__main__":

RegisterPy()

不过运行完提示:

"*** Unable to register!"

"*** You probably have another Python installation!"

找了很久终于找到问题:

分析脚本的源代码可以看出,该脚本的作用是在注册表:

HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/

的位置创建注册表项,从而给PIL的安装程序使用。但是由于PIL的安装程序只在并未在此处搜索注册表项,所以造成上述错误。

通过查阅资料得出:官网下载的PIL的安装程序在Windows10 64bit平台下搜索注册表项目的位置为:

HKEY_CURRENT_USER/SOFTWARE/Python/PythonCore

而不是脚本中写入的

HKEY_LOCAL_MACHINE

因此,将脚本中两处HKEY_LOCAL_MACHINE替换为HKEY_CURRENT_USER(Line22,25),再次运行即可解决问题。修改后脚本如下:

#-*- coding:utf-8 -*-#

#script to register Python 2.0 or later for use with win32all#and other extensions that require Python registry settings#

#written by Joakim Löw for Secret Labs AB / PythonWare#

#source:#http://www.pythonware.com/products/works/articles/regpy20.htm

importsysfrom _winreg import *

#tweak as necessary

version = sys.version[:3]

installpath=sys.prefix

regpath= "SOFTWARE\\Python\\Pythoncore\\%s\\" %(version)

installkey= "InstallPath"pythonkey= "PythonPath"pythonpath= "%s;%s\\Lib\\;%s\\DLLs\\" %(

installpath, installpath, installpath

)printversion,pythonpathdefRegisterPy():try:

reg=OpenKey(HKEY_CURRENT_USER, regpath)exceptEnvironmentError:try:

reg=CreateKey(HKEY_CURRENT_USER, regpath)

SetValue(reg, installkey, REG_SZ, installpath)

SetValue(reg, pythonkey, REG_SZ, pythonpath)

CloseKey(reg)except:print "*** Unable to register!"

return

print "--- Python", version, "is now registered!"

return

if (QueryValue(reg, installkey) == installpath andQueryValue(reg, pythonkey)==pythonpath):

CloseKey(reg)print "=== Python", version, "is already registered!"

returnCloseKey(reg)print "*** Unable to register!"

print "*** You probably have another Python installation!"

if __name__ == "__main__":

RegisterPy()

运行,搞定!

3. 导入Image报错

如果你跑到这里,然后输入:

from PIL import Image

没有报错的话,可以不用看下去了。

偏偏我这边会报错:

ImportError: The _imaging C module is not installed

这个问题很棘手,应该是一些兼容性的问题,网上很多答案语焉不详,很多都是说要用二进制编辑器修改_imagingft.pyd的,但是用了网上别人修改过的文件还是没能解决问题。

4. 换轮子

既然PIL这么麻烦就换轮子吧,逛论坛的时候发现一个网站,里面恰好有PIL的替代品:Pillow,下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/,根据自己的操作系统和python版本选择,最后进入目录用pip安装一下:

pip install Pillow-5.2.0-cp27-cp27m-win_amd64.whl

重新导入Image,没有报错,并且功能正常。

三、参考

(完)

python pip install pil_python安装PIL库相关推荐

  1. pip install skimage安装skimage库出错问题

    目录 pip install skimage安装skimage库出错的解决方案 安装skimage库出错 错误如下: 解决方法如下: pip install skimage安装skimage库出错的解 ...

  2. pip install skimage安装skimage库出错的解决办法

    pip install skimage安装skimage库出错的解决办法 安装skimage库出错 pip install skimage 解决办法: pip install scikit-image

  3. pip install scrapy安装scrapy库出现error: Microsoft Visual C++ 14.0 is required.问题解决

    转载出处:https://blog.csdn.net/weixin_42057852/article/details/80857948 1.今天,试着去安装一个scrapy库,发现运行命令的时候报以下 ...

  4. Python学习——Python安装pil库,操作流程以及安装中出现的问题。

    0.用管理员方式打开cmd窗口. 1.跳转到python对应目录 比如: 或者直接在该路径下输入cmd直接跳转. 直接回车搞定!! 2.输入 pip install pillow安装即可 成功后提示: ...

  5. Python3.9.5安装PIL库

    Python3.9.5安装PIL库 一.下载PIL库 二.安装PIL库 总结 一.下载PIL库 PIL这个库的名字官方改为了Pillow,PIL官方版不支持py3,不过有非官方那个的替代品pillow ...

  6. python 离线下载和安装第三方库 .whl wheel 文件

    python 离线下载和安装第三方库 .whl wheel 文件 下载 .whl 文件 pip download \--only-binary=:all: \ # 对于包以及包的依赖包,都不使用二进制 ...

  7. Mac下安装PIL库

    首先,下载jpegsrc.zlib.PIL python Imaging Library 1.1.7 Source Kit jpegsrc.v9a.tar.gz zlib-1.2.8.tar.gz 然 ...

  8. python进行数据分析需要安装哪两个库_对Python进行数据分析_关于Package的安装问题...

    一.为什么要使用Python进行数据分析? python拥有一个巨大的活跃的科学计算社区,拥有不断改良的库,能够轻松的集成C,C++,Fortran代码(Cython项目),可以同时用于研究和原型的构 ...

  9. python pip install syntaxerror_解决pip install xxx报错SyntaxError: invalid syntax的问题

    python--pip install xxx报错SyntaxError: invalid syntax 在安装好python后,进入python运行环境后,因为我要用pip安装开发Web App需要 ...

  10. Python3.x:pip install pymssql安装时出错

    Python3.x:pip install pymssql安装时出错 一.错误日志 error: Microsoft Visual C++ 14.0 is required. Get it with ...

最新文章

  1. 24小时学通linux视频教程下载
  2. hive能加快MySQL查询速度吗_建立索引可以加快表中数据查询的速度吗
  3. Tensorflow从入门到精通之:Tensorflow基本操作
  4. Linux实战教学笔记02:计算机系统硬件核心知识
  5. EasyNVR内网摄像机接入网关+EasyNVS云端管理平台,组件起一套轻量级类似于企业级萤石云的解决方案...
  6. sharepoint SPFolder的使用
  7. 文件夹选择对话框 JS实现(转)
  8. (2)通过输入参数(测量数据)构建三维体模型(01)
  9. 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
  10. Mac 安装超级终端管理设备
  11. Hilbert变换及相关特征值
  12. 【Spark重点难点-面试篇】SparkSQL面试专题
  13. oracle 英文 简历,免费英文简历范文模板
  14. Ubuntu安装字体for wps
  15. python抓取网站数据并图形化显示(二)
  16. 银行从业中级系列课程之——银行管理(二)监管概述,监管指标和监测指标
  17. C# Winform生成条码二维码
  18. Foreda Workstation 36安装搜狗拼音输入法
  19. 随手记录: 扩展M.2硬盘,从1T换到2T 硬盘clone ubuntu设置等注意事项
  20. 老男孩第十四期Python学习班之Day02

热门文章

  1. java 二次封装azkaban 实现azkaban任务的执行
  2. PQ分区魔术师图解教程
  3. 实际BCI应用:异步EEG/EOG BCI手抓取和释放的可行性
  4. 网站盈利有哪些模式?
  5. 计算机网络与通信毕业论文题目,数据通信与网络系统毕业论文题目(692个).doc...
  6. Linux操作系统管理-Resource temporarily unavailable
  7. Drupal7导入语言包
  8. 写给独自站在人生面前的自己1-java加密算法
  9. mysql character_set_client 设置_关于MySQL如何修改character_set_client的编码问题
  10. 万条票房数据看2019春节档各地影院表现