py2exe `ImportError: нет модуля с именем backend_tkagg` - PullRequest
9 голосов
/ 07 января 2012

Я пытаюсь сделать исполняемый файл Windows из скрипта Python, который использует matplotlib, и кажется, что я получаю общую ошибку.

Файл "run.py", строка 29, в импортеmatplotlib.pyplot as plt Файл «matplotlib \ pyplot.pyc», строка 95, в файле «matplotlib \ backends__init __. pyc», строка 25, в pylab_setup ImportError: Нет модуля с именем 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'])

Ответы [ 3 ]

5 голосов
/ 07 января 2012

Во-первых, простой вопрос, установлен ли этот бэкэнд? В моей системе Fedora я должен был установить ее отдельно от базовой matplotlib.

На консоли Python вы можете:

>>> import matplotlib.backends.backend_tkagg

Если это работает, то заставьте py2exe включить его. В вашем конфиге:

opts = {
  'py2exe': { "includes" : ["matplotlib.backends.backend_tkagg"] }
}
2 голосов
/ 15 декабря 2012

Если вы используете py2exe, он не обрабатывает модули Python в формате .egg.Если вы использовали easy_install для установки модуля устранения неполадок, то у вас может быть только версия .egg.Посетите сайт py2exe для получения дополнительной информации о том, как это исправить.

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

0 голосов
/ 26 декабря 2016

Это хорошо работает

из настройки импорта distutils.core импорт py2exe, sys, os импорт матплотлиб

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

установка ( варианты = { "py2exe": { "bundle_files": 3, «Сжатый»: Правда, "includes": ["matplotlib.backends.backend_tkagg"] } }, windows = [{"script": "script.py"}],

zipfile = None,

data_files = matplotlib data_files = matplotlib.get_py2exe_datafiles (), ) * +1010 *

...