2012-06-16 56 views
0

我想生成一個可執行文件。我現在用的是包py2exe與matplotlib,numpy和pylab

import sys 
import matplotlib.pyplot as plt 
from pylab import * 
from numpy import * 

的setup.py如下

from distutils.core import setup 
import py2exe 
import matplotlib 

setup(console=['<python file>'],data_files=matplotlib.get_py2exe_datafiles(),) 

,但我得到pyplot.pyc

Import Error: no module named backend_tkagg

任何關係的錯誤周圍進行修復?

+0

的py2exe wiki有一個頁面中的所有有關獲取matplotlib和py2exe工作。見http://www.py2exe.org/index.cgi/MatPlotLib –

回答

9

您應該明確包含matplotlib模塊。 如果你這樣做,你可以從不可用的DLL中得到一些錯誤,所以你應該排除它們。
與您的文件對我工作的設置:

from distutils.core import setup 
import py2exe 
import matplotlib 

setup(console=['afile.py'], 
     options={ 
       'py2exe': { 
          'packages' : ['matplotlib', 'pytz'], 
          'dll_excludes': ['libgdk-win32-2.0-0.dll', 
             'libgobject-2.0-0.dll', 
             'libgdk_pixbuf-2.0-0.dll', 
             'libgtk-win32-2.0-0.dll', 
             'libglib-2.0-0.dll', 
             'libcairo-2.dll', 
             'libpango-1.0-0.dll', 
             'libpangowin32-1.0-0.dll', 
             'libpangocairo-1.0-0.dll', 
             'libglade-2.0-0.dll', 
             'libgmodule-2.0-0.dll', 
             'libgthread-2.0-0.dll', 
             'QtGui4.dll', 'QtCore.dll', 
             'QtCore4.dll' 
             ], 
          } 
       }, 
     data_files=matplotlib.get_py2exe_datafiles(),) 
+1

爲了使這個工作,我不得不添加''excludes':['zmq']'到上面的腳本。否則,當運行執行我的安裝腳本時,我會遇到「找不到libzmq.pyd」。 – bsegraves

1

我需要添加(python2.7):

import sys 
    sys.path.append("C:\\pathToYourPython\\pythonxy2731\\console\\Microsoft.VC90.CRT")