1

私はこのフォーラムや他の多くのフォーラムを検索してきましたが、実行可能ファイルを作成するための良い方法が得られないようです。私はいくつかの異なる方法(py2exe、pyinstaller、cx_freeze)を試しましたが、すべて何らかのエラーが発生するようです。

pyinstallerを試してみると、「_imagingCモジュールがインストールされていません」というエラーが表示されました。私が検索するすべてはそれがPILに関係していると言っていますが、私のコードはPILを使用していません。

py2exeを試したところ、次のエラーが発生し続けます。

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

私は何をすべきか途方に暮れています。私のコードには次のインポートが含まれています。

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'], 
        }
    }, 

) 

助けてくれてありがとう!

4

1 に答える 1

3

これで問題が解決するかどうかは完全にはわかりませんが、最初にその欠陥のあるoptions辞書エントリを修正する必要があります。Pythonでは、同じキーを使用して辞書を何度も定義すると、最後の値のみが取得されます。キーは1回だけ存在できます。

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'
        ],
于 2012-06-27T17:41:52.770 に答える