2012-01-06 14 views
9

Estoy tratando de hacer un ejecutable de Windows desde un script python que usa matplotlib y parece que estoy obteniendo un error común.py2exe `ImportError: Ningún módulo llamado backend_tkagg`

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

El problema es que no encontré una solución mientras buscaba en Google por Internet.

Aquí es mi setup.py

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

Tome un vistazo a [este post lista de correo] (http://bytes.com/topic/python/answers/714236- matplotlib-tkagg-windowsxp-importerror) y ver si te puede ayudar un poco. – Makoto

+0

@Makoto no funcionó, gracias. – kechapito

+0

Tengo el mismo problema. ¿Logró encontrar una solución? – user38034

Respuesta

5

En primer lugar, la cuestión fácil, que se instala backend? En mi sistema Fedora tuve que instalarlo por separado desde la base matplotlib.

En una consola Python es posible:

>>> import matplotlib.backends.backend_tkagg 

Si eso funciona, entonces forzar py2exe para incluirlo. En su configuración:

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

'import matplotlib.backends.backend_tkagg' funciona y agregué la opción pero el problema permanece – kechapito

2

Si está utilizando py2exe no maneja los módulos de Python .egg formateados. Si usó easy_install para instalar el módulo de problemas, entonces es posible que solo tenga la versión .egg. Consulte el sitio py2exe para obtener más información sobre cómo solucionarlo.

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

0

Esto funciona bien

de importación distutils.core configuración py2exe importación, sys, os matplotlib importación

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

configuración ( opciones = { "py2exe": { "bundle_files": 3, "comprimidos": true, "incluye": [ "matplotlib.backends.backend_tkagg"] }} , ventanas = [{ "guión": "script.py"}],

zipfile = None, 

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

Cuestiones relacionadas