|
From: Thomas C. <tca...@gm...> - 2015-03-20 16:25:00
|
I think `six` (which we use to smooth over the 2/3 changes) has a way of dealing with atleast the urllib renaming . On Fri, Mar 20, 2015 at 11:58 AM Ryan Nelson <rne...@gm...> wrote: > For me, if I change the script from the PR to what is shown below, > everything works fine in both Python 2.7 and 3.4 (Anaconda environments, > everything updated): > ################## > url = 'http://www.libpng.org/pub/png/img_png/pngnow.png' > try: > import urllib2 > data = urllib2.urlopen(url) > except Exception: > import urllib.request > from io import BytesIO > data = BytesIO(urllib.request.urlopen(url).read()) > > from matplotlib import pyplot > > image = pyplot.imread(data) # crash on py3.x > pyplot.imshow(image) > pyplot.show() > ################# > But as you can see, the Python 3 version requires the addition of BytesIO > and read(). I take it that this is not supposed to be the case. > > Ryan > > On Fri, Mar 20, 2015 at 11:48 AM, Ryan Nelson <rne...@gm...> > wrote: > >> Thanks, Ben. I should have made that more clear. If I run the code from >> the PR, I get the following error: >> >> Traceback (most recent call last): >> File "junk.py", line 11, in <module> >> image = pyplot.imread(data) # crash on py3.x >> File >> "/home/nelson/apps/miniconda/lib/python3.4/site-packages/matplotlib/pyplot.py", >> line 2215, in imread >> return _imread(*args, **kwargs) >> File >> "/home/nelson/apps/miniconda/lib/python3.4/site-packages/matplotlib/image.py", >> line 1270, in imread >> return handler(fname) >> RuntimeError: _image_module::readpng: file not recognized as a PNG file >> >> My code that I'm trying to port essentially does the same thing, and I >> get the same error. I ran this example just now from Anaconda Python 3.4 >> install with MPL 1.4.3. >> >> My impression from the PR was that this should work out of the box now. I >> figured that maybe that was not quite the case. The implementations between >> Py2 and 3 are quite different. Figured there must be a different way that I >> wasn't aware of. >> >> Ryan >> >> On Fri, Mar 20, 2015 at 9:51 AM, Benjamin Root <ben...@ou...> wrote: >> >>> According to the PR you reference, the fix for this was merged back in >>> Jan 2013, so that means that this fix is in version 1.2.x and up. Are you >>> saying that you still can't do imread(urllib.request.urlopen(url))? >>> >>> On Thu, Mar 19, 2015 at 8:54 PM, Ryan Nelson <rne...@gm...> >>> wrote: >>> >>>> Hello all, >>>> >>>> I'm porting over some code that used Py2.7 urllib2.urlopen(url) to grab >>>> some image data from the net and load with pyplot.imread. It doesn't work >>>> quite right in Py3.4. I found a couple of refs: >>>> >>>> https://github.com/matplotlib/matplotlib/pull/1650 >>>> >>>> http://stackoverflow.com/questions/15183170/python-crash-when-downloading-image-as-numpy-array >>>> >>>> They suggest io.BytesIO(urllib.request.urlopen(url).read()) as a >>>> replacement for Py3. Is this the best practice? Does anyone know a simpler >>>> way to do this? >>>> >>>> Ryan >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Dive into the World of Parallel Programming The Go Parallel Website, >>>> sponsored >>>> by Intel and developed in partnership with Slashdot Media, is your hub >>>> for all >>>> things parallel software development, from weekly thought leadership >>>> blogs to >>>> news, videos, case studies, tutorials and more. Take a look and join the >>>> conversation now. http://goparallel.sourceforge.net/ >>>> _______________________________________________ >>>> Matplotlib-users mailing list >>>> Mat...@li... >>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>>> >>>> >>> >> > ------------------------------------------------------------ > ------------------ > Dive into the World of Parallel Programming The Go Parallel Website, > sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for > all > things parallel software development, from weekly thought leadership blogs > to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |