Modify

Opened 7 years ago

Closed 6 years ago

#2504 closed defect (fixed)

TypeError: cannot return std::string from Unicode object

Reported by: jyder4@… Owned by: khundeen
Priority: high Component: TracMetrixPlugin
Severity: major Keywords:
Cc: jyder4@… Trac Release: 0.11

Description (last modified by khundeen)

Error was occured when I click one of the milestone from table of milestone at dashboard.

How to Reproduce

While doing a GET operation on /mdashboard/4.3.1.3, Trac issued an internal error.

(please provide additional details here)

Request parameters:

{'id': u'4.3.1.3', 'imagename': None}

System Information

Trac 0.11dev-r6425
Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]
setuptools 0.6c7
SQLite 3.5.2
pysqlite 2.4.0
Genshi 0.5dev-r789
mod_python 3.3.1
Pygments 0.9
Subversion 1.4.6 (r28521)

Python Traceback

Traceback (most recent call last):
  File "g:\python25\lib\site-packages\Trac-0.11dev_r6425-py2.5.egg\trac\web\main.py", line 406, in _dispatch_request
    dispatcher.dispatch(req)
  File "g:\python25\lib\site-packages\Trac-0.11dev_r6425-py2.5.egg\trac\web\main.py", line 195, in dispatch
    resp = chosen_handler.process_request(req)
  File "build\bdist.win32\egg\tracmetrixplugin\mdashboard.py", line 431, in process_request
    return self._render_view(req, db, milestone)
  File "build\bdist.win32\egg\tracmetrixplugin\mdashboard.py", line 557, in _render_view
    create_cumulative_chart(self.env, milestone, numdates, tkt_cumulative_table)
  File "build\bdist.win32\egg\tracmetrixplugin\mdashboard.py", line 324, in create_cumulative_chart
    fig.savefig(path)
  File "G:\Python25\Lib\site-packages\matplotlib\figure.py", line 782, in savefig
    self.canvas.print_figure(*args, **kwargs)
  File "G:\Python25\Lib\site-packages\matplotlib\backend_bases.py", line 1195, in print_figure
    **kwargs)
  File "G:\Python25\Lib\site-packages\matplotlib\backends\backend_agg.py", line 397, in print_png
    self.get_renderer()._renderer.write_png(filename, self.figure.dpi.get())
TypeError: cannot return std::string from Unicode object

Attachments (0)

Change History (4)

comment:1 follow-up: Changed 7 years ago by raymond.wooninck@…

I had the same problem and I was able to fix it by playing with the version of the matplotlib. I am running TRAC on Windows 2003 under Apache 2.2 and I had installed all latest versions of the indicated requirements. This lead to the same error as you described. I tried to lower the versions of all the requirements to the recommended version, but was unable to do this for Pygtk. With matplotlib 0.87-7 I received a different error, but now I am running with version 0.90.0 and this one solves the errors.

It might be worth it to try matplotlib versions lower than 0.91. What I found on the internet is that with this version a change was made how Unicode fonts are translated.

Raymond

comment:2 in reply to: ↑ 1 Changed 6 years ago by richardw

Replying to raymond.wooninck@cchellenic.com:

I had the same problem and I was able to fix it by playing with the version of the matplotlib.

<snip>

It might be worth it to try matplotlib versions lower than 0.91. What I found on the internet is that with this version a change was made how Unicode fonts are translated.

Thanks for the pointer. Have just installed TracMetrixPlugin with Trac 0.11.1 on Ubuntu Hardy and got the same error. I manually applied the following change to python2.5-matplotlib (0.91.2-0ubuntu1) and the page and graph work again. See:

  • branches/v0_91_maint/lib/matplotlib/backends/backend_agg.py

     
    394394
    395395    def print_png(self, filename, *args, **kwargs):
    396396        self.draw()
     397        filename = str(filename) # until we figure out unicode handling
    397398        self.get_renderer()._renderer.write_png(filename, self.figure.dpi.get())
    398399

comment:3 Changed 6 years ago by richardw

Note duplicate ticket #2900

comment:4 Changed 6 years ago by khundeen

  • Description modified (diff)
  • Resolution set to fixed
  • Status changed from new to closed

I just add the code to use Yahoo chart to plot instead of the Matplotlib. This problem should be fixed.

Add Comment

Modify Ticket

Action
as closed The owner will remain khundeen.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.