关于Snow Leopard、Django和PIL的问题
我在把系统升级到Snow Leopard后,遇到了一些麻烦,想让Django和PIL正常工作。
我安装了freetype、libjpeg,然后安装了PIL,安装时显示了:
--- TKINTER support ok
--- JPEG support ok
--- ZLIB (PNG/ZIP) support ok
--- FREETYPE2 support ok
但是当我试着通过Django的管理界面上传一个jpeg文件时,却出现了:
请上传一个有效的图片。您上传的文件要么不是图片,要么是损坏的图片。
用PNG文件上传是没问题的。
有什么想法吗?
3 个回答
3
我在使用Ubuntu 8.04的时候也遇到了类似的问题。我通过重新安装PIL(用pip命令)解决了这个问题:
pip install PIL --upgrade
我不太确定具体是什么问题,但我猜可能和其他人遇到的情况差不多。
5
接着Ken的回答,我在使用Snow Leopard 10.6.x时也遇到了同样的问题,这个问题是因为我在安装libjpeg之前就安装了PIL。安装完libjpeg后,我按照以下步骤重新安装了PIL。
- 进入PIL的工作文件夹
- 运行命令:python setup.py clean
- 运行命令:python setup.py build_ext -i <-- 这个命令会重新构建PIL
- 运行命令:python selftest.py - 运行自测,确认PIL安装成功
- 运行命令:python setup.py install
14
Cato
我在使用Leopard 10.5.x的时候也遇到过同样的问题。这里是我解决它的方法(可能对你不一定有效)。
- 首先,找到你PIL的工作文件夹(就是你解压PIL的地方)。然后进入你的构建文件夹,再进入lib.macosx-10.*文件夹(这个是根据你的操作系统来的)。接着删除所有以.so结尾的文件。然后再回到你的PIL构建文件夹(我当时是以超级用户身份登录的,不过你也可以用sudo命令来执行这些操作)。
- 接下来,运行命令:python setup.py clean
- 然后,运行命令:python setup.py build
- 最后,运行命令:python setup.py install
这样就可以干净地重建PIL了。你看到jpeg正常的原因是,它只是检查jpeg库文件是否存在,并没有检查从干净构建和安装PIL所需的依赖关系。
希望这能解决你的问题。我的问题更可能是安装顺序不对,但也许这对你有帮助……
- Ken