0

UPDATE:

I get this message no matter what I attempt to plot: even this

plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()

returns the error RuntimeError: Could not create write struct


I am trying to plot a raw image inline. My Jupyter notebook is up on an AWS instance with port forwarding.

My code is as follows:

see above update

When I try this, I get the error message below, which culminates in the message RuntimeError: Could not create write struct.

The weird thing is, the exact same code runs fine locally. I can view images all day long.

So as an experiment I pulled the image down off AWS and ran it locally and I could see it displayed just fine.

I'm thinking, there must be some problem with either my Matplotlib or even jupyter notebook.

I've removed / reinstalled both multiple times, in multiple configurations. I made sure the local and AMI versions of the packages are the exact same.

I have no idea what is going on.

The error itself, naturally, isn't useful. And when googling the error, there's few exact string matching results, which is always scary.

Other random stuff:

I'm using Python 2.7
Both libraries are managed within Conda
Jupyter: 4.4.0 Matplotlib: 2.1.2

<matplotlib.image.AxesImage at 0x7f261c1f2b50>
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
/home/ubuntu/anaconda3/envs/pytorch_p27/lib/python2.7/site-packages/IPython/core/formatters.pyc in __call__(self, obj)
    332                 pass
    333             else:
--> 334                 return printer(obj)
    335             # Finally look for special method names
    336             method = get_real_method(obj, self.print_method)

/home/ubuntu/anaconda3/envs/pytorch_p27/lib/python2.7/site-packages/IPython/core/pylabtools.pyc in <lambda>(fig)
    238 
    239     if 'png' in formats:
--> 240         png_formatter.for_type(Figure, lambda fig: print_figure(fig, 'png', **kwargs))
    241     if 'retina' in formats or 'png2x' in formats:
    242         png_formatter.for_type(Figure, lambda fig: retina_figure(fig, **kwargs))

/home/ubuntu/anaconda3/envs/pytorch_p27/lib/python2.7/site-packages/IPython/core/pylabtools.pyc in print_figure(fig, fmt, bbox_inches, **kwargs)
    122 
    123     bytes_io = BytesIO()
--> 124     fig.canvas.print_figure(bytes_io, **kw)
    125     data = bytes_io.getvalue()
    126     if fmt == 'svg':

/home/ubuntu/anaconda3/envs/pytorch_p27/lib/python2.7/site-packages/matplotlib/backend_bases.pyc in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)
   2214                     orientation=orientation,
   2215                     dryrun=True,
-> 2216                     **kwargs)
   2217                 renderer = self.figure._cachedRenderer
   2218                 bbox_inches = self.figure.get_tightbbox(renderer)

/home/ubuntu/anaconda3/envs/pytorch_p27/lib/python2.7/site-packages/matplotlib/backends/backend_agg.pyc in print_png(self, filename_or_obj, *args, **kwargs)
    524         try:
    525             _png.write_png(renderer._renderer, filename_or_obj,
--> 526                            self.figure.dpi, metadata=metadata)
    527         finally:
    528             if close:

RuntimeError: Could not create write struct

<matplotlib.figure.Figure at 0x7f2624b94950>
Monica Heddneck
  • 2,973
  • 10
  • 55
  • 89

1 Answers1

0

This is unclear and I have no idea why, but I removed the conda installation of matplotlib, and then reinstalled matplotlib with pip.

Now everything works fine.

¯\_(ツ)_/¯

Monica Heddneck
  • 2,973
  • 10
  • 55
  • 89