【问题标题】:I am getting this error while adding product from django admin panel从 django 管理面板添加产品时出现此错误
【发布时间】:2021-01-17 08:58:30
【问题描述】:

当我尝试从 django 构建的管理面板添加产品时,我收到以下错误消息:

/home/pihffall/virtualenv/gngmain/3.7/lib/python3.7/site-packages/PIL/../Pillow.libs/libjpeg-ba7bf5af.so.9.4.0: file too short

谁能告诉我如何解决这个问题?

这是我的产品型号:

class Product(models.Model):
    slug = models.SlugField(null=True, blank=True)
    name = models.CharField(max_length=100)
    category = models.ForeignKey(
        Category, on_delete=models.CASCADE, default='UNCATEGORIZED')
    brand = models.ForeignKey(
        Brand, on_delete=models.CASCADE, default="None", null=True, blank=True)
    deal = models.ForeignKey(Deals, on_delete=models.CASCADE, null=True, blank=True)
    shop = models.ForeignKey(Shop, models.CASCADE, null=True, blank=True)
    image = models.ImageField(upload_to='images/', null=True)
    price = models.FloatField()
    disc_price = models.FloatField(null=True, blank=True,)
    desc = models.TextField(max_length=10000, blank=True)
    stockout = models.BooleanField(default=False)
    meta_title = models.CharField(max_length=100, null=True, blank=True)
    meta_desc = models.TextField(max_length=300, null=True, blank=True)
    offer = models.ForeignKey(OfferCategory, on_delete=models.CASCADE, null=True, blank=True)
    stock_quantity = models.IntegerField(null=True, blank=True)
    

完整的追溯

ImportError at /Mithu@64848/store/product/add/
/home/pihffall/virtualenv/gngmain/3.7/lib/python3.7/site-packages/PIL/../Pillow.libs/libjpeg-ba7bf5af.so.9.4.0: file too short

【问题讨论】:

  • 您是否尝试保存具有更大图像或什至没有图像的产品?

标签: python django


【解决方案1】:

确定您需要安装Pillow 以在您的模型上创建图像字段,运行pip install Pillow

【讨论】:

    【解决方案2】:

    您有一个损坏的 .so 文件,在本例中是 libjpeg-ba7bf5af.so 需要修复/更换。如果您使用的是 Centos,请查看此Stack Exchange answer

    您也可以尝试通过 pip 删除并重新安装 Pillow。 pip uninstall Pillow 然后pip install Pillow

    如果您使用的是基于 Debian 的系统,例如 ubuntu,请查看运行 sudo apt-get install -y libjpeg-dev 以安装 libjpeg

    一定要检查和external libraries你可能需要枕头。

    【讨论】: