import matplotlib.pyplot gives ImportError: No module named _tkagg

Bug #337469 reported by jhn
86
This bug affects 12 people
Affects Status Importance Assigned to Milestone
matplotlib (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

The default TkAgg backend for matplotlib dosn't work and gives the folowing error when
pyplot is imported in both python 2.6 and 2.5

>>> import matplotlib.pyplot
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/dist-packages/matplotlib/pyplot.py", line 75, in <module>
    new_figure_manager, draw_if_interactive, show = pylab_setup()
  File "/usr/lib/python2.6/dist-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
    globals(),locals(),[backend_name])
  File "/usr/lib/python2.6/dist-packages/matplotlib/backends/backend_tkagg.py", line 8, in <module>
    import tkagg # Paint image to Tk photo blitter extension
  File "/usr/lib/python2.6/dist-packages/matplotlib/backends/tkagg.py", line 1, in <module>
    import _tkagg
ImportError: No module named _tkagg

However if you change the backend in /etc/matplotlibrc to QT4 (and maybe others) everything works fine

using matplotlib 0.98.5.2-1ubuntu1 on kubuntu 9.04 alpha 5

Related branches

Revision history for this message
Václav Šmilauer (eudoxos) wrote :

Confirming. This is a regression from intrepid and cen be verified by inspection of package contents list. _tkagg.so doesn't exist anymore in jaunty.

Revision history for this message
Václav Šmilauer (eudoxos) wrote :

BTW no mention of such change in changelogs, either.

Revision history for this message
Václav Šmilauer (eudoxos) wrote :

After rebuilding the package locally, _tkagg.so installs just fine. OTOH then I get RuntimeError: Could not find the matplotlib data files from /usr/lib/python2.6/dist-packages/matplotlib/__init__.py:479. But that one can be worked around by setting MATPLOTLIBDATA=/usr/share/matplotlib env. var.

Revision history for this message
Václav Šmilauer (eudoxos) wrote :

Correcting my mistake in the last post: should read MATPLOTLIBDATA=/usr/share/matplotlib/mpl-data .

David Coles (dcoles)
Changed in matplotlib:
status: New → Confirmed
Revision history for this message
Daniel J Blueman (danielblueman) wrote :

I find that rebuilding matplotlib addresses the issue, without need for setting the environment variable here.

Revision history for this message
Andrew Straw (astraw) wrote :

I can confirm this bug with 0.98.5.2-1ubuntu1. I have a patch to the source and confirmed that it builds the _tkagg module and fixes this bug. I include the debdiff file produced from the source I used.

Revision history for this message
LaserJock (laserjock) wrote :

Andrew, thanks a ton for the debdiff. One question though, what are the changes in debian/rules for? Why are you rm'ing the build directory?

Revision history for this message
Andrew Straw (astraw) wrote :

Jordan, the "rm -rf build" is in the clean target -- this is only used for cleaning up the tree after a build and before a new one. "dh-clean build", which I removed, was breaking if the build directory wasn't there, whereas the rm command does not break. Really, I should probably test for the existence of the directory and only delete it in that case, but I couldn't remember the syntax, whereas "rm -rf" is pretty much hardwired into my spinal ganglia.

Revision history for this message
Benjamin Drung (bdrung) wrote :

0.98.5.2-1ubuntu1+0ads1 should be changed to 0.98.5.2-1ubuntu2.

Revision history for this message
Benjamin Drung (bdrung) wrote :

I have added the bug number to the changelog entry. I can confirm that this patch works. So please sponsor Andrews patch.

Revision history for this message
Daniel Holbach (dholbach) wrote :

Uploaded. Sitting in the queue.

Changed in matplotlib (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package matplotlib - 0.98.5.2-1ubuntu2

---------------
matplotlib (0.98.5.2-1ubuntu2) jaunty; urgency=low

  * Really build with tcl/tk8.5 as python-tk was build with tcl/tk8.5
    (LP: #337469).

 -- Andrew Straw <email address hidden> Sat, 21 Mar 2009 14:55:09 -0700

Changed in matplotlib:
status: Fix Committed → Fix Released
Revision history for this message
Youen (youen-peron) wrote :

I have the same bug with an upgraded Nasty from a clean Manvrik. I don't known if i must open a new issue or reopen this one.

Revision history for this message
Jan Groenewald (jan-aims) wrote :

This bug is present on Natty Development branch at the moment.
Should a new bug be filed?

jan@milaine-laptop:~$ python -c "import pylab"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/pymodules/python2.7/pylab.py", line 1, in <module>
    from matplotlib.pylab import *
  File "/usr/lib/pymodules/python2.7/matplotlib/pylab.py", line 247, in <module>
    from matplotlib.pyplot import *
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 78, in <module>
    new_figure_manager, draw_if_interactive, show = pylab_setup()
  File "/usr/lib/pymodules/python2.7/matplotlib/backends/__init__.py", line 25, in pylab_setup
    globals(),locals(),[backend_name])
  File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 8, in <module>
    import tkagg # Paint image to Tk photo blitter extension
  File "/usr/lib/pymodules/python2.7/matplotlib/backends/tkagg.py", line 1, in <module>
    import _tkagg
ImportError: No module named _tkagg
jan@milaine-laptop:~$ dpkg -l |grep python-tk
ii python-tk 2.7-2ubuntu2 Tkinter - Writing Tk applications with Python
jan@milaine-laptop:~$

Revision history for this message
the_vorpal_blade (the-vorpal-blade) wrote :

I can confirm that this is an issue in Natty. It happened with today's batch of updates, since it was not a problem yesterday.

Revision history for this message
Marcel Stimberg (marcelstimberg) wrote :

Please follow bug #752647 for this issue in Natty.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.