abkfenris / gage-web

A web interface for a low cost stream height gauging system.
https://riverflo.ws
1 stars 1 forks source link

Matplotlib and Python 3 #63

Closed abkfenris closed 9 years ago

abkfenris commented 9 years ago

When trying to access a gage png in python3 there is a string/bytes error:

127.0.0.1 - - [07/Jul/2015 11:31:30] "GET /gage/1/level-usgs.png HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/flask_debugtoolbar/__init__.py", line 125, in dispatch_request
    return view_func(**req.view_args)
  File "/Users/kerneya/Dropbox/Gage/gage-web/app/main/plot.py", line 87, in gagesensorplot
    canvas.print_png(png_output)
  File "/Users/kerneya/virtualenvs/gage-web-3/lib/python3.4/site-packages/matplotlib/backends/backend_agg.py", line 533, in print_png
    filename_or_obj, self.figure.dpi)
TypeError: string argument expected, got 'bytes'
abkfenris commented 9 years ago

Lying to py.test happens here, so I've got a working test, it just is skipped on python3.

abkfenris commented 9 years ago

http://matplotlib.1069221.n5.nabble.com/savefig-and-StringIO-error-on-Python3-td44241.html