kechap
kechap

Reputation: 2087

py2exe `ImportError: No module named backend_tkagg`

I am trying to make a windows executable from a python script that uses matplotlib and it seems that I am getting a common error.

File "run.py", line 29, in import matplotlib.pyplot as plt File "matplotlib\pyplot.pyc", line 95, in File "matplotlib\backends__init__.pyc", line 25, in pylab_setup ImportError: No module named backend_tkagg

The problem is that I didn't found a solution while googling all over the internet.

Here is my setup.py

from distutils.core import setup
import matplotlib
import py2exe 
matplotlib.use('TkAgg')
setup(data_files=matplotlib.get_py2exe_datafiles(),console=['run.py'])

Upvotes: 9

Views: 10622

Answers (4)

shreyas-agrawal
shreyas-agrawal

Reputation: 254

Run the following command to install the backend_tkagg

For centos -- sudo yum install python-matplotlib-tk

This should work.

Upvotes: 0

cesarpro
cesarpro

Reputation: 1

This works well

from distutils.core import setup import py2exe, sys, os import matplotlib

sys.setrecursionlimit(12000) sys.argv.append('py2exe')

setup( options = { "py2exe" : { "bundle_files":3, "compressed":True, "includes" : ["matplotlib.backends.backend_tkagg"] } }, windows = [{"script": "script.py"}],

zipfile = None,

data_files=matplotlib data_files = matplotlib.get_py2exe_datafiles(), )

Upvotes: 0

Pete
Pete

Reputation: 21

If you are using py2exe it doesn't handle .egg formatted Python modules. If you used easy_install to install the trouble module then you might only have the .egg version. See the py2exe site for more info on how to fix it.

http://www.py2exe.org/index.cgi/ExeWithEggs

Upvotes: 2

Mark
Mark

Reputation: 108567

First, the easy question, is that backend installed? On my Fedora system I had to install it separately from the base matplotlib.

At a Python console can you:

>>> import matplotlib.backends.backend_tkagg

If that works, then force py2exe to include it. In your config:

opts = {
  'py2exe': { "includes" : ["matplotlib.backends.backend_tkagg"] }
}

Upvotes: 5

Related Questions