配置的Debian Web服务器,通过virtualenv构建了Pyramid项目,大部分代码运行挺正常,到一个验证码程序时出错了,检查日志得到如下Python异常:

ImportError: No module named PIL

但是我PIL明明是通过easy_install直接安装的啊,求助于网络找到了这么一篇解决方案《The problem with installing PIL using virtualenv or buildout》,

原文的意思是在pypi上的PIL版本不兼容于setuptools,所以不能被easy_install正常安装,必须指定url安装兼容版本,比如如下命令

pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL

经过这么一折腾,确实测试下来import PIL不会报错了,但是原程序依旧不能正常运行,继续检查日志后得到下面的异常:

ImportError: The _imagingft C module is not installed

搜索了网络,大多是编译安装PIL时,系统缺少库文件导致的,通过下面的命令安装可能的包或者库文件:

sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

然后重新编译下载PIL,结果在这过程中提示如下警告:

--------------------------------------------------------------------

*** TKINTER support not available (Tcl/Tk 8.4 libraries needed)

*** JPEG support not available

*** ZLIB (PNG/ZIP) support not available

*** FREETYPE2 support not available

--------------------------------------------------------------------

To add a missing option, make sure you have the required

library, and set the corresponding ROOT variable in the

setup.py script.

所有的必须的库仍然提示support not available,说明刚才的安装预先库的办法是没有用的,纠结了。

搜索了网络,大多是针对Ubuntu的解决方案,不过功夫不负有心人,还是让我找到了Debian下的解决办法《PIL zip jpeg decoders not working on runtime but work on install/selftest》,现在分享出来:

其实最简单的办法就是先用命令pip uninstall PIL卸载已有的PIL,然后安装PIL的fork版本Pillow,这是一个“友好”(friendly)的PIL版本,由Plone社区维护,主要用于Web开发上。

pip install pillow

好了,卸载先前的官方PIL,安装Pillow后,所有问题都解决了!

转载自 http://wangye.org/blog/archives/752/

阅读(599) | 评论(0) | 转发(0) |

python pil无法安装_解决virtualenv下安装Python PIL的support not available问题相关推荐

  1. python中arch模块_在Arch下安装pip

    1. 首先安装一个命令行下载工具,我这里使用axel: $ axel https://bootstrap.pypa.io/get-pip.py #下载完成之后得到一个python文件 $ ls get ...

  2. python画图中文显示_解决Linux系统中python matplotlib画图的中文显示问题

    最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些 ...

  3. 用mac的python写网络爬虫_在mac下使用python抓取数据

    2015已经过去,这是2016的第一篇博文! 祝大家新年快乐! 但是我还有好多期末考试! 还没开始复习,唉,一把辛酸泪! 最近看了一遍彦祖的文章叫做 所以自己也想小试牛刀.于是便开始动手写,但初次接触 ...

  4. python 矢量数据融合代码_在ArcGIS下基于Python的矢量数据处理方法

    在 ArcGIS 下基于 Python 的矢量数据处理方法 林璐 王爽 李海泉 侯兴泽 马鹏刚 [摘 要] 在 ArcGIS 中地理处理可以通过 Python 脚本语言来具体实现.通过 Python ...

  5. python windows 消息通讯_在windows下使用python进行串口通讯的方法

    在windows下使用python进行串口通讯的方法 Windows版本下的python并没有内置串口通讯的pyserial的库,所以需要自己下载.参照了网上的教程,有许多用的pip的安装方式,但是试 ...

  6. linux网卡驱动离线安装_在linux下安装网卡驱动的方法

    本文告诉你如何在linux系统下安装网卡驱动. 把网卡驱动COPY 到软盘上.在linux 的/tmp下建个空目录,然后再把软盘上的驱动COPY到这个空目录下. 解压缩: #tar zxvf r100 ...

  7. macbook自带python保存文件夹_在mac下查找python包存放路径site-packages的实现方法 在Mac系统下python如何安装第三方函数库?...

    mac怎么查看python的site-package位置世界上最伤心的事,不是你爱的人不爱你,而是他爱你过后,最后却不爱你. 可以通过find命令查看,参考demo如下: sudo find / -n ...

  8. debian php mysql 安装_在 Debian 下安装 Apache,MySQL,PHP

    我是转载过来的,原地址 http://blog.csdn.net/youngdze/article/details/20455557 ,我安装成功! 首先,对你的源进行更新: $ sudo apt-g ...

  9. java version 和javac版本不一致_解决linux下javac -version和java -version版本显示不一致...

    [javascript] view plaincopy [root@localhost usr]# $JAVA_HOME/bin/java -version bash: /bin/java: 没有那个 ...

最新文章

  1. iOS架构-自动打包并上传到App Store(python)(21)
  2. python怎么输入代码-如何编写python代码
  3. 四则运算2任务完成表
  4. unity3d 虚拟博物馆_基于Unity3D的虚拟博物馆信息可视化系统①
  5. 算法与数据结构实验题 6.4 Summary
  6. “化鲲为鹏,我有话说”如何用鲲鹏弹性云服务器部署《Hadoop伪分布式》
  7. 【工具】Unity中如何自动化对模型减面?
  8. LabelStudio + MMDetection 实现目标分割预标注
  9. 进程通信的几种方式及其各自优缺点
  10. torch.Tensor
  11. 敏捷迭代管理 --需求变更规范
  12. linux coreclr编译,.NET跨平台:在Linux Ubuntu上编译coreclr/corefx/dnx(20150617)
  13. MOOC-大型开放式网络课程massive open online courses
  14. Fater RCNN 试着加入注意力机制模型
  15. CCNP学习笔记15
  16. python编程中出现“Process finished with exit code 1073741845”
  17. 无聊的程序员教你如何使用十几行代码练就单身20年的手速(文末彩蛋)
  18. 极光推送小米手机不能查看logcat通知栏无法正确显示应用图标
  19. 股市的这拨行情何时见顶?
  20. JOB:前端面试10

热门文章

  1. 【爬坑】在 IDEA 中运行 Hadoop 程序 报 winutils.exe 不存在错误解决方案
  2. 在vuejs 中使用axios不能获取属性data的解决方法
  3. 一劳永逸解决IDEA 2019.3连接MySQL80时区(serverTimezone)问题
  4. 由于stdin不是终端,因此不会分配伪终端
  5. 在函数调用中,星号运算符是什么意思? [重复]
  6. 通过HTTPS使用HttpClient信任所有证书
  7. 如何使用PHP获取当前年份?
  8. “最少惊讶”和可变默认参数
  9. 新品【国内动态】服务器列表
  10. 那些重金投入区块链的互联网巨头,现在怎样了?|BCCon