2012-06-27 4 views
1

나는이 포럼과 다른 많은 사람들을 검색해 왔으며 실행 파일을 만드는 좋은 방법을 얻을 수없는 것처럼 보입니다. 몇 가지 다른 방법 (py2exe, pyinstaller 및 cx_freeze)을 시도하고 모두 내게 어떤 종류의 오류를 줄 것 같습니다.Py2exe 및 matplotlib 오류로 실행 파일 만들기

pyinstaller를 시도하면 "_imaging C 모듈이 설치되지 않았습니다"라는 오류가 발생했습니다. 내가 검색 한 모든 내용은 PIL과 관련이 있지만 내 코드는 PIL을 사용하지 않는다고 말합니다. 무엇을해야하는지의 손실에

File "Scout_Tool.py", line 18, in <module> 
File "matplotlib\pyplot.pyc", line 95, in <module> 
File "matplotlib\backends\__init__.pyc", line 25, in pylab_setup 
ImportError: No module named backend_qt4agg 

내가 : 내가 py2exe에 시도 할 때

, 나는 다음과 같은 오류가 발생 계속. 내 코드는 다음과 수입을 포함

import os 
import csv 
import wx 
import time 
import math 

from matplotlib.backends.backend_wx import FigureCanvasWx as FigureCanvas 
from matplotlib.backends.backend_wx import NavigationToolbar2Wx 
from matplotlib.pyplot import figure,show 
from mpl_toolkits.basemap import Basemap 
from matplotlib.figure import Figure 
import matplotlib.pyplot as plt 
from numpy.random import rand 
from datetime import datetime 
import wx.calendar as cal 
import numpy as npy 
from pylab import * 
import numpy as np 
import matplotlib 
import adodbapi 
import sqlparse 
import pylab 
import annote_new 
import cPickle as pickle 

사람이 py2exe에를 사용하여 실행 파일의 빌드 작업을 수행하는 방법에 대한 제안 사항이 있습니까? 내가 시도한 것은 ...

from distutils.core import setup 
import py2exe 
import matplotlib 

setup( 
    windows=[{'script': r'Scout_Tool.py'}], 

    data_files=matplotlib.get_py2exe_datafiles(), 

    options={ 
     r'py2exe': { 
      r'includes': r'ElementConfig', 
      r'includes': r'ColorConv', 
      r'includes': r'Tkinter', 
      r'includes': r're', 
      r'includes': r'math', 
      r'includes': r'sys', 
      r'includes': r'matplotlib', 
      r'includes': r'mpl_toolkits', 
      r'includes': r'matplotlib.backends.backend_wx', 
      r'dll_excludes': [r'MSVCP90.dll'], 
     } 
    }, 

) 

어떤 도움을 주셔서 감사합니다!

+0

PIL가 가장 가능성하기 matplotlib에서 사용됩니다. lib의 종속성을 찾는 데 문제가있을 수 있습니다. 불만을 토로하는 모듈을 명시 적으로 포함 목록에 추가하려 했습니까? – jdi

+0

예가 있습니까? 위의 내 오류를 기반으로 "r'includes '추가 : r'matplotlib.backends.backend_qt4agg',"내 포함 목록에 있지만 아무 것도 수행하지 않는 것 같습니다 – mcfly

+0

물론입니다. 내 대답을보십시오 – jdi

답변

3

귀하의 문제를 해결할 수 있을지 확실하지 않지만 해당 결함이있는 options 사전 항목을 수정하여 시작해야합니다. 파이썬에서 동일한 키를 반복적으로 사용하여 사전을 정의하면 마지막 값만 얻게됩니다. 키는 한 번만 존재할 수 있습니다 :

options={ 
    r'py2exe': { 
     r'includes': r'ElementConfig', 
     ... 
     r'includes': r'mpl_toolkits', 
     r'includes': r'matplotlib.backends.backend_wx', 
     ... 
    } 
} 

print options 
#{'py2exe': {'includes': 'matplotlib.backends.backend_wx'}} 

이 사용 결과는 py2exe가 의도 한 내용을 실제로 찾지 못하는 것으로 의심됩니다. includes는 목록이어야합니다 :

options={ 
    'py2exe':{ 
     'includes': [ 
      'ElementConfig', 
      'ColorConv', 
      'Tkinter', 
      're', 
      'math', 
      'sys', 
      'matplotlib', 
      'mpl_toolkits', 
      'matplotlib.backends.backend_wx' 
     ], 
     'dll_excludes': ['MSVCP90.dll'], 
    } 
}, 

이 후, 그것은 여전히 ​​백엔드 누락에 대해 불평하는 경우, 다른 명시 적으로 항목을 추가 할 수 있습니다

 'includes': [ 
      ... 
      'matplotlib.backends.backend_qt4agg' 
     ], 
+0

좋아, 내가 백엔드 오류를 통과있어. "\ __ 초기화 __ mpl_toolkits \베이스 맵 PYC." 파일에 파일 "Scout_Tool.py", 라인 19 라인 (30), 파일 "mpl_toolkits에서 : 역 추적 (마지막으로 가장 최근 통화) :하지만 지금은이납니다 \ basemap \ pyproj.pyc ", 줄 63, IOError : proj 데이터 디렉터리를 찾을 수 없습니다. C : \ Python27 \ dist \ library.zip \ mpl_toolkits \ basemap \ data – mcfly

+0

아마도이 부분은 matplot에 특정한'get_py2exe_datafiles'와 관련이 있습니다. 나는 matplot을 번들로 묶어 놓은 경험이 없으므로 정말로 확신 할 수 없다. 여기에 광범위한 예제를 시도해 보셨나요? http://www.py2exe.org/index.cgi/MatPlotLib? – jdi

+0

나는 그들 중 많은 것을 시도해 보았다. – mcfly