2012-01-06 13 views
9

Próbuję zrobić plik wykonywalny Windows ze skryptu Pythona, który używa matplotlib i wydaje się, że otrzymuję wspólny błąd.py2exe `ImportError: Brak modułu o nazwie 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

Problem polega na tym, że nie znalazł rozwiązanie podczas googlowania całego internetu.

Oto moja 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

Spójrz na [tej listy post] (http://bytes.com/topic/python/answers/714236- matplotlib-tkagg-windowsxp-importerror) i sprawdź, czy może ci to pomóc. – Makoto

+0

@Makoto nie zadziałało, dzięki. – kechapito

+0

Mam ten sam problem. Udało ci się znaleźć rozwiązanie? – user38034

Odpowiedz

5

pierwsze, proste pytanie, które jest zainstalowane backend? W moim systemie Fedora musiałem zainstalować go oddzielnie od bazy matplotlib.

Na konsoli Pythona Można:

>>> import matplotlib.backends.backend_tkagg 

Jeśli to działa, a następnie wymusić py2exe włączenie go. W Twojej konfiguracji:

+0

'import matplotlib.backends.backend_tkagg' działa i dodałem opcję, ale problem pozostaje – kechapito

2

Jeśli używasz py2exe, to nie obsługuje on modułów Pythona z rozszerzeniem .egg. Jeśli użyłeś easy_install do zainstalowania modułu awarii, możesz mieć tylko wersję .egg. Zobacz stronę py2exe, aby uzyskać więcej informacji o tym, jak to naprawić.

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

0

Działa to dobrze

z distutils.core importu konfiguracji importowej py2exe, sys, os import matplotlib

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

Konfiguracja

( opcje = { "py2exe": { "bundle_files": 3, "skondensowanej": prawda, "obejmuje" [ "matplotlib.backends.backend_tkagg"] } }, okna = [{ "skryptu": ""} script.py]

zipfile = None, 

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

Powiązane problemy