2012-03-21 15 views
1

py2exeを使用して実行可能ファイルを作成しようとしています。私が実行したとき、私は私の実行可能ファイルを作る、しかし、今py2exeとmatplotlib:バックエンドのエラー

from distutils.core import setup 
import py2exe 


# 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.figure","pylab", "numpy"], 
       'excludes': ['_gtkagg', '_tkagg', '_agg2', '_cairo', '_cocoaagg', "matplotlib.numerix.fft","sip", "PyQt4._qt", 
          "matplotlib.backends", "matplotlib.backends.backend_qt4agg", 
           "matplotlib.numerix.linear_algebra", "matplotlib.numerix.random_array", 
           "matplotlib.backends.backend_tkagg" 
          '_fltkagg', '_gtk','_tkagg','_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:\Python26\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:\Python26\Lib\site-packages\matplotlib\mpl-data\matplotlibrc']), 
        (r'mpl-data\images',glob.glob(r'C:\Python26\Lib\site-packages\matplotlib\mpl-data\images\*.*')), 
        (r'mpl-data\fonts',glob.glob(r'C:\Python26\Lib\site-packages\matplotlib\mpl-data\fonts\*.*'))] 

# for console program use 'console = [{"script" : "scriptname.py"}] 
setup(windows=[{"script" : "test.py"}], options=opts, data_files=data_files) 

import Tkinter 
import math 
from matplotlib.figure import Figure 
from pylab import * 
import random 

私は実行可能にするために使用Setup.pyは以下の通りです:私の.pyはTkinterの、matplotlibのと何か他のものを使用していますそれは、私はエラーのリストを取得:

Traceback (most recent call last): 
File "test.py", line 17, in <module> 
File "pylab.pyc", line 1, in <module> 
File "matplotlib\pylab.pyc", line 259, in <module> 
File "matplotlib\pyplot.pyc", line 94, in <module> 
ImportError: No module named backends 

私はバックエンドについて多くを知らないが、私はまた、Setup.pyファイルから何かを除外しないようにしようとしたんが、私は同じエラーを取得:「いいえモジュールという名前のバックエンドを"

+0

溶液: '「含む」:私は追加することによってそれを解決[「matplotlib.backends.backend_tkagg」]'にセットアップファイル。 – maupertius

答えて

0

私はわずかに実行ファイルを作成するために使用されるsetup.pyファイル変更することによって解決:

from distutils.core import setup 
import py2exe 


# 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.backend_tkagg"], 

       'excludes': ['_gtkagg', '_tkagg', '_agg2', '_cairo', '_cocoaagg', "matplotlib.numerix.fft","sip", "PyQt4._qt", 
           "matplotlib.backends.backend_qt4agg", 
           "matplotlib.numerix.linear_algebra", "matplotlib.numerix.random_array", 

          '_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:\Python26\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:\Python26\Lib\site-packages\matplotlib\mpl-data\matplotlibrc']), 
        (r'mpl-data\images',glob.glob(r'C:\Python26\Lib\site-packages\matplotlib\mpl-data\images\*.*')), 
        (r'mpl-data\fonts',glob.glob(r'C:\Python26\Lib\site-packages\matplotlib\mpl-data\fonts\*.*'))] 

# for console program use 'console = [{"script" : "scriptname.py"}] 
setup(windows=[{"script" : "test.py"}], options=opts, data_files=data_files) 
関連する問題