Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么可以';我是否可以通过admin/将jpg文件上传到我的Django应用程序?_Python_Django - Fatal编程技术网

Python 为什么可以';我是否可以通过admin/将jpg文件上传到我的Django应用程序?

Python 为什么可以';我是否可以通过admin/将jpg文件上传到我的Django应用程序?,python,django,Python,Django,我正在尝试在Django应用程序中将图像添加到我的模型中 models.py class ImageMain(models.Model): product = models.ForeignKey(Product) photo = models.ImageField(upload_to='products') 在开发模式下,每次我尝试通过Django admin上传图像时,我都会得到: 上传一个有效的图像。您上载的文件不是图像或文件 损坏的图像 我通过fink安装了libjpeg,然后在

我正在尝试在Django应用程序中将图像添加到我的模型中

models.py

class ImageMain(models.Model):
  product = models.ForeignKey(Product)
  photo = models.ImageField(upload_to='products')
在开发模式下,每次我尝试通过Django admin上传图像时,我都会得到:

上传一个有效的图像。您上载的文件不是图像或文件 损坏的图像

我通过fink安装了libjpeg,然后在ox X 10.5.7上安装了PIL 1.1.6

from PIL import Image
file = open('/Users/Bryan/work/review_app/media/lcdtvs/samsung_UN46B6000_front.jpg', 'r')
trial_image = Image.open(file)
trial_image.verify()
基于该会话,jpg似乎是有效的。但是,它不会加载。 我试过其他JPG,它们也不起作用

出了什么问题


我成功上传了一个png文件。

在系统上编译/安装了PIL之后,您是否安装了libjpeg?也许它找不到正确的解码器

下面是我在MacOS上找到的一组关于如何使libjpeg和PIL在MacOS上良好播放的说明(请参见结尾部分;看起来您可能需要显式设置解码器的dir):


虽然在Linux而不是Mac上,但我遇到了这个问题,因此可能无法提供太具体的信息。 不过,您可能也需要libjpeg-devel(如果Mac有通讯员的话)

另外,请确保从系统中完全清除当前的PIL安装。在确定libjpeg安装正确后,使用build_ext-i重新安装PIL。然后运行PIL的selftest.py,检查是否出现JPEG错误。

只需执行此操作即可
sudo简易安装PIL

这将安装特定于您的操作系统的PIL。
请确保在/usr/local/lib/python2.6/dist-packages/中生成的egg文件包含egg信息(因为当我执行相同操作时,egg文件不正确)。如果没有,那么只需将PIL构建特定名称重命名为PIL,并在dist packages文件夹中添加一个PIL.pth文件。在PIL.pth文件中写入PIL,您就完成了

我在Ubuntu服务器中遇到了相同的问题,然后您可以通过在PIL之前安装libjpeg dev来修复它

sudo apt-get install libjpeg-dev
sudo pip install PIL --upgrade
如果您已经在PIL之后安装了libjpeg dev。然后,您可以先删除PIL,然后尝试按照以下方式重新安装PIL

sudo pip uninstall PIL
sudo apt-get install libjpeg-dev
sudo pip install PIL

它对我有用,希望对你有用。

Django正在尝试从名为
PIL
的文件夹导入PIL,但PIL将自己安装在名为
PIL-1.1.7-py2.6-macosx-10.6-universal.egg的文件夹中,因此导入失败-哪个Django(或PIL?)似乎将其解释为损坏的图像

简单的符号链接

host:~ user$ cd /Library/Python/2.6/site-packages
host:site-packages user$ ln -vis PIL-1.1.7-py2.6-macosx-10.6-universal.egg PIL
create symbolic link `PIL' to `PIL-1.1.7-py2.6-macosx-10.6-universal.egg'
已经在MacOSX 10.6.x MBP上为我修复了这个问题。 在Linux机器上,该文件夹可能被称为
dist-packages
,位于
/usr/lib/python/
的下面,但想法是一样的


您通常可以找到python模块通常安装到的文件夹,如前所述。

'python-v'然后'import\u imaging'对于确定从何处加载_imaging.so很有用。如果您重新安装PIL而没有清除站点包中的PIL目录,那么您可能仍然使用Python包目录下的旧_imaging.so运行。PIL的selftest.py将通过,因为在构建目录中有一个新的_imaging.so。并确保在setup.py中编辑JPEG_ROOT,以便在构建时选择正确的标题和.so目录。

我在Ubuntu 11.04上遇到了类似的问题。显然,在Ubuntu11中,您似乎需要libjpeg 8 dev,而不是libjpeg或libjpeg62。感谢Guillaumes post

注意,对于任何在Ubuntu上使用virtualenv出现此错误的人,这篇文章都很有帮助

基本上,Ubuntu会将共享对象安装到pip不知道的位置。在这种情况下,pip希望系统库位于/usr/lib中,但Ubuntu将它们放在/usr/lib/x86_64-linux-gnu中,或者其他依赖于Architecture的位置

短期修复方法是将库符号链接到/usr/lib:

sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/

这为我修复了Ubuntu 12.04上的错误。

我有一个类似的问题,我通过参考下面的链接清除了它:


我也安装了pillow,在安装libjpeg-dev之后,我不得不卸载/重新安装。这对我来说不起作用。即使安装了libjpeg-dev,在virtualenv中构建PIL仍然会报告“JPEG支持不可用”。非常感谢!这个错误快把我逼疯了。最新版本的PIL,可以很好地从文件中读取相同的jpeg,但从StringIO中根本无法读取!您的配方立即修复了它。在对pip安装的库进行更改后,是否需要重新启动服务器?还是别的什么?