我正在使用NGINX / FastCGI在Ubuntu的virtualenv中运行Django应用程序,并尝试将JPG图像上传到Django管理应用程序。
我收到此错误:“上传有效图片。您上传的文件不是图片或图片已损坏。”我可以上传一个GIF图像,因此只有JPEG会导致问题。
这是我到目前为止所尝试的内容:
1)在PIL之前安装libjpeg62-dev
pip uninstall pil
sudo apt-get libjpeg62-dev
pip install pil
在PIL安装结束时,我看到:
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
所以看起来像JPEG支持。我还做了手动测试以验证并验证了:
>>> from PIL import Image
>>> trial_image=Image.open("/path/to/my/image.png")
>>> trial_image.verify()
2)与上面的方法#1类似,但手动指定JPG_ROOT:
pip uninstall pil
sudo apt-get libjpeg62-dev
pip install --no-install pil
vi /path/to/virtualenv/build/PIL/setup.py (JPG_ROOT = libinclude("/usr/lib"))
pip install pil
3)试试Pillow(PIL前叉)的运气
pip uninstall pil
sudo apt-get libjpeg62-dev
pip install pillow
我正在运行Django,我也试图停止&每次安装PIL后启动nginx服务。
到目前为止,上述方法都没有让我在Ubuntu上的Django应用程序中超过上述错误消息。我可以在运行相同Django应用程序的本地开发盒(Mac OSX 10.6.5)上上传相同的JPG图像,所以我知道这是我在Ubuntu上的部署。
任何帮助将不胜感激!
答案 0 :(得分:1)
那么你知道什么,我决定退出Django管理员并重新登录....突然它运行正常!啧。我尝试的最后一件事就是上面的#2,所以如果有人遇到这个问题,这是你最好的解决方案。
答案 1 :(得分:0)
你很亲密。但所需的图书馆是不同的。