Python中,PIL和JPEG在Heroku(Python, PIL and JPEG on He

2019-07-29 01:45发布

我有一个Django的网站,托管在Heroku上。 其中一个模型都有一个像场,这需要上传的图片,重新调整它们,并把它们推到Amazon S3,使他们能够持久地存储。

这种运作良好,使用PIL

def save(self, *args, **kwargs):


    # Save this one
    super(Product, self).save(*args,**kwargs)

    # resize on file system
    size = 200, 200
    filename = str(self.thumbnail.path)
    image = Image.open(filename)
    image.thumbnail(size, Image.ANTIALIAS)
    image.save(filename)

    # send to amazon and remove from ephemeral file system
    if put_s3(filename):
        os.remove(filename)
        return True

然而,PIL似乎工作正常进行的PNG和GIF,但不具有的libjpeg compliled。 在本地开发环境或完全控制“尼克斯服务器,它只是在安装JPEG扩展的情况。

但没有人知道Jpeg的操作是否可能使用雪松Heroku的叠加么? 有没有别的东西,可以添加到requirements.txt?

在其他无关的包,这在virtualenv中包括requirements.txt:

Django==1.3.1
PIL==1.1.7
distribute==0.6.24
django-queued-storage==0.5
django-storages==1.1.4
psycopg2==2.4.4
python-dateutil==1.5
wsgiref==0.1.2

谢谢

Answer 1:

我用这个PIL叉requirements.txt:

-e hg+https://bitbucket.org/etienned/pil-2009-raclette/#egg=PIL

并且可以使用JPEG无问题:

       --------------------------------------------------------------------
       PIL 1.2a0 SETUP SUMMARY
       --------------------------------------------------------------------
       version       1.2a0
       platform      Python 2.7.2 (default, Oct 31 2011, 16:22:04)
                     [GCC 4.4.3] on linux2
       --------------------------------------------------------------------
       *** TKINTER support not available
       --- JPEG support available
       *** WEBP support not available
       --- ZLIB (PNG/ZIP) support available
       --- FREETYPE2 support available
       --- LITTLECMS support available
       --------------------------------------------------------------------


Answer 2:

也请考虑使用枕头 ,“友好” PIL叉它可以提供:

  • setuptools的兼容性
  • Python 3的兼容性
  • 频繁的发布周期
  • 许多bug修复


文章来源: Python, PIL and JPEG on Heroku