Django 使用验证码工具django-simple-captcha的遇到问题{_imagingft,IndexError: list index out of range}
先来看看第一个问题
1 | IndexError: list index out of range |
就是这个简单的错误是因为我在django中使用django-simple-captcha的时候,没有在项目中运行下面的命令
1 | python manage.py syncdb |
就是一定要记得要进行数据库表的同步
第二个问题就是比较验证的操作量比较大的“_imagingft
”问题
不过经过google的查找,按照下面的步骤进行就解决了问题,步骤如下
这个是由于PIL没有编译freetype导致的
查看 lib/python2.7/site-packages/PIL/
看看 _imagingft.so
是否存在
第一步安装ipeg库
最新的可以到http://www.ijg.org/files 这里去下载
1 | wget http://www.ijg.org/files/jpegsrc.v7.tar.gz |
第二步安装freetype开发库
让PIL支持freetype的方法
1、安装freetype开发库
1 | yum install freetype-devel |
2、下载源代码http://effbot.org/downloads/Imaging-1.1.7.tar.gz
3、修改setup.py文件
修改
1 | JPEG_ROOT = libinclude("/usr/local") |
关于freetype的安装我因为是在ubuntu环境下,不想运行yum,我是自己下载的,最近的源码可以到这个网址http://download.savannah.gnu.org/releases/freetype/ 下载,然后进行手动源码安装
第三步重新编译PIL进行安装(这里我采用的也是源码安装,源码的最新库的地址在http://effbot.org/downloads )
1 | python setup.py build_ext -i |
— FREETYPE2 support available 注意这一项
编译安装
1 | python setup.py install |
若上面的设置都失败,则只能拿出下面的杀手锏(我是没有经过这一步就成功了):
sudo apt-get build-dep python-imaging
sudo ln -s /usr/lib/
uname -i
-linux-gnu/libfreetype.so /usr/lib/sudo ln -s /usr/lib/
uname -i
-linux-gnu/libjpeg.so /usr/lib/sudo ln -s /usr/lib/
uname -i
-linux-gnu/libz.so /usr/lib/pip install -U PIL
安装成功的结果是
1 | -------------------------------------------------------------------- |
参考文章:
http://www.cnblogs.com/descusr/p/3225874.html