Ipython: jpg не поддерживается серверной частью matplotlib

Созданный на 14 мар. 2015  ·  11Комментарии  ·  Источник: ipython/ipython

Только что получил ошибку после включения формата jpg matplotlib:

%matplotlib inline
from IPython.display import set_matplotlib_formats
set_matplotlib_formats('png', 'jpg')
ValueError                                Traceback (most recent call last)
C:\portabel\miniconda\envs\ipython\lib\site-packages\IPython\core\formatters.pyc in __call__(self, obj)
    333                 pass
    334             else:
--> 335                 return printer(obj)
    336             # Finally look for special method names
    337             method = _safe_get_formatter_method(obj, self.print_method)

C:\portabel\miniconda\envs\ipython\lib\site-packages\IPython\core\pylabtools.pyc in <lambda>(fig)
    209         png_formatter.for_type(Figure, lambda fig: retina_figure(fig, **kwargs))
    210     if 'jpg' in formats or 'jpeg' in formats:
--> 211         jpg_formatter.for_type(Figure, lambda fig: print_figure(fig, 'jpg', **kwargs))
    212     if 'svg' in formats:
    213         svg_formatter.for_type(Figure, lambda fig: print_figure(fig, 'svg', **kwargs))

C:\portabel\miniconda\envs\ipython\lib\site-packages\IPython\core\pylabtools.pyc in print_figure(fig, fmt, bbox_inches, **kwargs)
    115     
    116     bytes_io = BytesIO()
--> 117     fig.canvas.print_figure(bytes_io, **kw)
    118     data = bytes_io.getvalue()
    119     if fmt == 'svg':

C:\portabel\miniconda\envs\ipython\lib\site-packages\matplotlib\backend_bases.pyc in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)
   2117 
   2118         # get canvas object and print method for format
-> 2119         canvas = self._get_output_canvas(format)
   2120         print_method = getattr(canvas, 'print_%s' % format)
   2121 

C:\portabel\miniconda\envs\ipython\lib\site-packages\matplotlib\backend_bases.pyc in _get_output_canvas(self, format)
   2059         raise ValueError('Format "%s" is not supported.\n'
   2060                          'Supported formats: '
-> 2061                          '%s.' % (format, ', '.join(formats)))
   2062 
   2063     def print_figure(self, filename, dpi=None, facecolor='w', edgecolor='w',

ValueError: Format "jpg" is not supported.
Supported formats: eps, pdf, pgf, png, ps, raw, rgba, svg, svgz.

IPython.core.pylabtools здесь:

    supported = {'png', 'png2x', 'retina', 'jpg', 'jpeg', 'svg', 'pdf'}

Так что подозреваю, что здесь что-то не так ...

Это IPython 3.0, matplotlib 1.4.3 (оба из репозитория condas), Win7

Самый полезный комментарий

Я думаю, что для работы matplotlib требуется PIL для экспорта jpg:

conda install pillow

Все 11 Комментарий

Я думаю, что для работы matplotlib требуется PIL для экспорта jpg:

conda install pillow

Разве это не должно быть:

supported = {'png', 'png2x', 'retina', 'svg', 'pdf'}
try:
    from PIL import Image
    supported = supported.union({'jpg', 'jpeg'})
except:
    pass 

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

И форматы экспорта требуют PIL только для определенных бэкэндов (Agg / inline, но не GTK или OS X).

Привет,

Этот вопрос не обсуждается почти 2 года, и я не думаю, что мы можем что-то сделать. Он был отмечен как бездействие, и я собираюсь закрыть его, чтобы попытаться уменьшить количество открытых проблем. Не стесняйтесь открывать снова, если необходимо.

Спасибо.

pip3 install pillow заставил меня работать

pip install Pillow также не может решить проблему на моем компьютере .....

pip install Pillow также не может решить проблему на моем компьютере .....

Попробуйте сначала удалить подушку, а затем установить ее обратно. Работал у меня.
sudo pip3 uninstall pillow
sudo pip3 install pillow

Я столкнулся с той же проблемой, и приведенные выше решения не помогли решить мою проблему. После этого я просто попробовал plt.savefig("images/pie.png") , заменив .jpg на .png в файле .py, а также в моем файле .html. Наконец, файл pie.png был автоматически добавлен в мои папки, и моя проблема была решена.

Это связано с ошибкой в ​​Matplotlib (см. Https://github.com/matplotlib/matplotlib/issues/16083) в том, как мы проверяли версию подушки, которая была удалена в подушке 7.0. Это было исправлено в соответствующих ветках апстрима, и скоро должны выйти исправления ошибок. А пока понизьте подушку.

pip install "Pillow <7" заставил меня работать

Была ли эта страница полезной?
0 / 5 - 0 рейтинги