Уведомления

Группа в Telegram: @pythonsu

#1 Март 11, 2013 11:17:23

Win95
От:
Зарегистрирован: 2011-11-04
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка backend_tkagg при компиляции с py2exe [решено]

Доброго времени суток!)
Пытаюсь скомпилировать файл с помощью py2exe однако не получается.
Вот мой setup файл

from distutils.core import setup
import py2exe
import matplotlib
import matplotlib.backends.backend_tkagg
import pylab
options = {
    "bundle_files": 1, # Used for one big exe
    "compressed": 1,
    "includes" : ["matplotlib.backends.backend_tkagg"],
    "packages": ["sip", 'matplotlib', 'pytz', 'pylab', ],
    }
setup(
    data_files=matplotlib.get_py2exe_datafiles(),
    windows = [{
            "script": "grafic.py",
        }] 
)

Traceback (most recent call last):
  File "grafic.py", line 4, in <module>
  File "pylab.pyc", line 1, in <module>
  File "matplotlib\pylab.pyc", line 265, in <module>
  File "matplotlib\pyplot.pyc", line 97, in <module>
  File "matplotlib\backends\__init__.pyc", line 25, in pylab_setup
ImportError: No module named backend_tkagg
Читал об этом http://www.py2exe.org/index.cgi/MatPlotLib - не помогло.



Отредактировано Win95 (Март 11, 2013 11:42:26)

Офлайн

#2 Март 11, 2013 11:42:01

Win95
От:
Зарегистрирован: 2011-11-04
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка backend_tkagg при компиляции с py2exe [решено]

Проблема решена. Пришлось немного усовершенствовать setup до состояния:

# Used successfully in Python2.5 with matplotlib 0.91.2 and PyQt4 (and Qt 4.3.3)
from distutils.core import setup
import py2exe
from scipy.sparse.csgraph import _validation
# We need to import the glob module to search for all files.
import glob
# We need to exclude matplotlib backends not being used by this executable.  You may find
# that you need different excludes to create a working executable with your chosen backend.
# We also need to include include various numerix libraries that the other functions call.
opts = {
    'py2exe': { "includes" : [ "matplotlib.backends",  "matplotlib.backends.backend_qt4agg",
                               "matplotlib.figure","pylab", "numpy",
                               "matplotlib.backends.backend_tkagg",
                               'scipy',"scipy.special"],
                'excludes': ['_gtkagg', '_tkagg', '_agg2', '_cairo', '_cocoaagg',
                             '_fltkagg', '_gtk', '_gtkcairo', ],
                'dll_excludes': ['libgdk-win32-2.0-0.dll',
                                 'libgobject-2.0-0.dll']
              }
       }
# Save matplotlib-data to mpl-data ( It is located in the matplotlib\mpl-data
# folder and the compiled programs will look for it in \mpl-data
# note: using matplotlib.get_mpldata_info
data_files = [(r'mpl-data', glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\*.*')),
                    # Because matplotlibrc does not have an extension, glob does not find it (at least I think that's why)
                    # So add it manually here:
                  (r'mpl-data', [r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\matplotlibrc']),
                  (r'mpl-data\images',glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\images\*.*')),
                  (r'mpl-data\fonts',glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\*.*'))]
# for console program use 'console = [{"script" : "scriptname.py"}]
setup(windows=[{"script" : "grafic.py"}], options=opts,   data_files=data_files)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version