py2exe“ImportError:没有名为backend_tkagg的模块”

9
我正在尝试从一个使用matplotlib的python脚本中制作一个Windows可执行文件,但我似乎遇到了一个常见的错误。

文件 "run.py",第29行,在 import matplotlib.pyplot as plt 文件 "matplotlib\pyplot.pyc",第95行,在 文件 "matplotlib\backends__init__.pyc",第25行,在 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'])

看看这个邮件列表帖子,看是否可以帮助你一些。 - Makoto
@Makoto没有起作用,谢谢。 - kechap
我有同样的问题。 你找到解决方案了吗? - Jakube
我想我使用了 PyInstaller。 - kechap
4个回答

5

首先,简单的问题,该后端是否已安装?在我的 Fedora 系统上,我需要将其与基本的 matplotlib 分开安装。

在 Python 控制台中,您可以执行以下操作:

>>> import matplotlib.backends.backend_tkagg

如果成功了,那么就强制让py2exe将其包含进来。在你的配置文件中:
opts = {
  'py2exe': { "includes" : ["matplotlib.backends.backend_tkagg"] }
}

import matplotlib.backends.backend_tkagg可以正常工作,我已经添加了选项,但问题仍然存在。 - kechap

2
如果您使用py2exe,它无法处理以.egg格式的Python模块。如果您使用easy_install安装了有问题的模块,则可能只有.egg版本。请参阅py2exe网站以获取有关如何解决此问题的更多信息。 http://www.py2exe.org/index.cgi/ExeWithEggs

0

运行以下命令安装backend_tkagg

对于CentOS -- sudo yum install python-matplotlib-tk

这应该可以正常工作。


0

这个运行得很好

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

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

设置( 选项 = { "py2exe" : { "bundle_files":3, "compressed":True, "includes" : ["matplotlib.backends.backend_tkagg"] } }, 窗口 = [{"script": "script.py"}],

zipfile = None,

data_files = matplotlib.get_py2exe_datafiles(),data_files = matplotlib


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接