IOError: невозможно определить файл изображения - работает локально, но не на Heroku

Я знаю, что существует множество вопросов и ответов об этой ошибке в StackOverflow, и я прочитал их все и попробовал много своих предложений (Pillow вместо PIL, io.BytesIO вместо stringIO), но я все еще получаю такую же проблему со следующим:

Я работаю над кодом для обработки изображений с S3 - в частности, для их сохранения в виде JPG, при необходимости поворачивайте их и создавайте различные эскизы. Соответствующая часть кода получает список URL-адресов, относящихся к изображениям на S3. Я могу подтвердить, что, да, изображения находятся на S3 в местоположении, указанном в URL-адресе. На каждый URL я вызываю следующее:

def process_new_image(file_url):        
    # Load the image and make it a PIL object
    try:
        fd = urllib.urlopen(file_url)
        image_file = io.BytesIO(fd.read())
        image = Image.open(image_file)
    except Exception, e:
        # ===> This is where the issue happens. <====
        raise

    # Read the exif data and potentially rotate the image
    transpose = Transpose()
    transposed_image = transpose.process(image)

    # Resave the image as a jpeg
    new_image_data = io.BytesIO()
    transposed_image.save(new_image_data, 'jpeg', quality=100)
    new_image_data.seek(0)

    try:
        self.image.save('image', ContentFile(new_image_data.read()), save=True)
    except Exception, e:         
        raise

    new_image_data.seek(0)
    self.process_thumbnails(new_image_data)

Этот код работает нормально локально. Но когда я запускаю его в своей промежуточной среде в Heroku, я получаю "IOError: не могу определить файл изображения". Он не работает на JPG, PNG и GIF, которые все работают локально.

Особенности моей среды:

Джанго == 1.5.1

Подушка == 2.1.0

pilkit == 1.1.1

Python 2.7.3 (на обоих)

Локальная подушка, скомпилированная с:

--- TKINTER support available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
*** TIFF G3/G4 (experimental) support not available
--- FREETYPE2 support available
*** LITTLECMS support not available
*** WEBP support not available

На подушке Heroku, составленной с:

       *** TKINTER support not available
       --- JPEG support available
       --- ZLIB (PNG/ZIP) support available
       --- TIFF G3/G4 (experimental) support available
       --- FREETYPE2 support available
       --- LITTLECMS support available
       *** WEBP support not available
+1
источник поделиться

Посмотрите другие вопросы по меткам или Задайте вопрос