Подтвердить что ты не робот

Изображение .show() не отображает изображение

Я запускаю python script, но он не отображает изображение.

У меня есть изображение apple.jpg в каталоге с этой программой, и он должен показывать изображение, но это не так. Вот код:

#!/usr/bin/env python

from PIL import Image

Apple = Image.open("apple.jpg")
Apple.show()

Моя ОС - Ubuntu, и эта программа просто завершается без каких-либо ошибок.

4b9b3361

Ответ 1

Это работает для меня на Ubuntu. Он отображает изображение с помощью Imagemagick. Попробуйте следующее:

sudo apt-get install imagemagick

Ответ 2

Я знаю, это старый вопрос, но вот как я его исправил в Ubuntu, если кто-то имеет такую ​​же проблему и не хочет устанавливать imagemagick (что в любом случае не устраняет основную причину проблемы).

Средство просмотра по умолчанию для Ubuntu можно запустить с помощью команды "eog" в терминале. Подушка, по умолчанию, выполняет поиск только команд "xv" и "display" , последний из которых предоставляется imagemagick. Поэтому, если вы установите imagemagick, вызов "display" действительно откроет изображение. Но почему бы не использовать зрителя, который у нас уже есть?

Код Python для открытия средства просмотра можно найти в lib/python3.4/site-packages/PIL/ImageShow.py(или эквивалент вашей установки Python). Прокрутите вниз до строки # 155 и найдите блок кода, говорящий:

class DisplayViewer(UnixViewer):
    def get_command_ex(self, file, **options):
        command = executable = "display"
        return command, executable

if which("display"):
    register(DisplayViewer)

Скопируйте этот блок и вставьте его прямо под ним, изменив команду "display" на команду Ubuntu "eog":

class DisplayViewer(UnixViewer):
    def get_command_ex(self, file, **options):
        command = executable = "eog"
        return command, executable

if which("eog"):
    register(DisplayViewer)

После сохранения ImageShow.py, Pillow должен правильно показывать() изображения в средстве просмотра по умолчанию.

Ответ 3

Надеюсь, что я нашел здесь, может быть полезно кому-то, это сработало для меня. В нем объясняется, что, когда средство просмотра по умолчанию не принимает файлы изображений командной строки, вы можете использовать модуль webbrowser для отображения изображения:

import Image

# Apple = Image.open("apple.jpg")    
# Apple.show()
# instead of using .open and .show(), 
# save the image to show it with the webbrowser module

filename = "apple.jpg"
import webbrowser
webbrowser.open(filename)

Ответ 4

Это старый вопрос, однако он некоторое время прослушивал меня. Это мое решение:

Я запускаю Python 2.7 на Linux Mint и при вызове Image.show() ничего не происходит. В моей системе просмотрщик по умолчанию - "Image Viewer", который называется "eog" в bash. Мой Python думает, что я использую что-то еще, возможно, "xv". Итак, откройте терминал и запустите

sudo gedit /usr/lib/python2.7/dist-packages/PIL/ImageShow.py

Найдите "xv" и замените его "eog".

Сохраните файл и Image.show() отлично работает (для целей отладки).

Ответ 5

Возможно, у вас нет набора средств просмотра изображений по умолчанию. Попробуйте открыть файл изображения вне программы и посмотреть, просит ли он вас выбрать программу или просто открывается в другой программе.

Ответ 6

PIL в значительной степени отказывается от этого. Вы должны использовать его преемник pillow, который можно загрузить через easy_install или pip.

На ubuntu я предлагаю следующее:

  • Если у вас еще нет пипса, установите его через apt-get: sudo apt-get install python-pip
  • Установите подушку: pip install pillow --user

Оттуда вы сможете установить подушку и использовать ее класс Image таким же образом.