2012-01-06 223 views
9

我想从一个使用matplotlib的python脚本创建一个Windows可执行文件,它似乎我得到一个常见的错误。py2exe`ImportError:No module named 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

问题是,我没有找到一个解决方案,而谷歌搜索整个互联网。

这里是我的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

看看[这个邮件列表后(http://bytes.com/topic/python/answers/714236- matplotlib-tkagg-windowsxp-importerror),看看它能否帮助你一点。 – Makoto 2012-01-06 22:56:54

+0

@Makoto没有工作,谢谢。 – kechapito 2012-01-06 23:04:12

+0

我有同样的问题。 您是否设法找到解决方案? – user38034 2014-08-28 12:43:32

回答

5

首先,简单的问题,安装的后台?在我的Fedora系统上,我必须从基础matplotlib单独安装它。

在一个Python控制台可你:

>>> import matplotlib.backends.backend_tkagg 

如果这样的作品,然后强制py2exe把它列入。在你的配置中:

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

'import matplotlib.backends.backend_tkagg'工作,我添加了选项,但问题仍然存在 – kechapito 2012-01-07 01:04:12

2

如果你使用py2exe,它不处理.egg格式的Python模块。如果您使用easy_install安装故障模块,那么您可能只有.egg版本。有关如何解决该问题的更多信息,请参阅py2exe网站。

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

0

这从distutils.core进口设置 进口py2exe,SYS,OS 进口matplotlib

sys.setrecursionlimit(12000) sys.argv.append效果很好

(” py2exe')

setup( options = { “py2exe”:{ “bundle_files”:3, “压缩”:真, “包括”:[ “matplotlib.backends.backend_tkagg”] } }, 窗口= [{ “脚本”: “script.py”}],

zipfile = None, 

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