window下Django第三方APP调用PIL生成验证码出现ImportError: The _imagingft C module is not installed解决

在Windows上使用Django的PIL库生成验证码时遇到ImportError,通过下载并配置FreeType库解决了问题。步骤包括:下载FreeType Windows二进制文件,修改PIL的setup.py文件,编译并安装PIL,最后运行selftest.py确认FREETYPE2支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在stackoverflow上已经有人回答的很清楚了具体的回答在这
问题网址
有人提供预先同freetype编译的PIL下载网址(也有其他的模块)不过我看了一下PIL只有针对2.6版本的没有2.7的,当然也有 Pillow可以选择,不过网上有人说生成的验证码有点模糊,效果不好,所以我打算自己编译一个。(更新:django1.6版本将弃用PIL)

在linux上有人是这样干的:

网址
我大致也按照他的方法来
先下载FreeType

官网下载地址
有一个Windows binaries of FreeType

一个FreeType for Windows的版本下载地址:地址
虽然版本有些旧 但是将就了
如果希望用最新版本的也可以自行下载源码编译

默认安装盘是在C:\的

然后依葫芦画瓢copy一下include的地址
我的是:C:\Program Files\GnuWin32\include\

1.下载PIL源码,解包至任意目录

修改setup.py 在第40行

FREETYPE_ROOT = None
修改这个目录为

FREETYPE_ROOT = "C:\\Program Files\\GnuWin32\\lib",'C:\\Program Files\\GnuWin32\\include'

2.查看一下支持项

运行命令行,将工作目录转到PIL解包目录

命令行下使用python setup.py build_ext -i命令

可以看到FREETYPE2 support available 

如果总是出现LINK : fatal error LNK1146: no argument specified with option '/LIBPATH:'

在setup.py约223行的地方加上这句话:

 if "" in self.compiler.library_dirs:
        self.compiler.library_dirs.remove("")

3.新增:要记得测试一下 运行命令行:

python selftest.py

此时应该能看到FREETYPE2 support OK的字样

4.安装(**写完发现还是有问题 ,详见下面的更新)

同样在命令行下:

python setup.py install

成功的话也可以看到FREETYPE2 support available 

玩去吧!

对了顺带一提 有篇介绍PIL的完整编译的 不过一直看不懂 留给有需要的人吧

网址,猛击

====================================================================================================

写完这篇文章我发现上面网址提供的freetype for windows安装完毕后

selftest的时候还是有问题

所以在下面的网址下载freetype源码:

Freetype2源码

解包可以看到有vs2008 vs2010的项目文件还有include

编译后可以得到lib文件objs/win32/vc*/freetype*.lib

改名为freetype.lib

将setup.py的FREETYPE_ROOT修改为解压包lib的地址跟include地址

再次查看支持项selftest可以发现已经可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值