matplotlib エラーを扱った同様の質問 ( Py2exe と matplotlib エラーで実行可能ファイルを作成する) を以前に尋ねました。しかし、私はこの段階を乗り越えました。実行可能ファイルをビルドしようとすると、パッケージ/コードがインポートされないようです。たとえば、私のコードは次のものをインポートします。
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
実行可能ファイルを実行すると、「No Module Named os」というログ エラーが発生します。コードに含まれるすべてのモジュールでエラーが発生します (インポートする順序を変更した場合)。モジュールがインポートされないのはなぜですか? 私の Py2exe コードは次のようになります。
import os
from distutils.core import setup
import py2exe
from distutils.filelist import findall
import matplotlib
import glob
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
import wx
setup(
windows=[{'script': r'Scout_Tool.py'}],
data_files = [(r'mpl-data', glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\*.*')),
(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\*.*'))],
#matplotlib.get_py2exe_datafiles(),
options={
'py2exe':{
'includes': [
'matplotlib',
'matplotlib.backends.backend_wx',
'matplotlib.pyplot',
'mpl_toolkits.basemap',
'matplotlib.figure',
'numpy.random',
'wx.calendar',
'mpl_toolkits',
'numpy',
'datetime',
'wx',
'pylab',
'adodbapi',
'sqlparse',
'annote_new',
'cPickle',
'pylab'
],
'dll_excludes': ['MSVCP90.dll'],
}
},
)
py2exe を実行した後にモジュールがインポートされない理由について何か考えはありますか? ところで、py2exeコードを実行してもエラーは発生しません-生成された実行可能ファイルを実行しようとした場合のみです。ありがとう!
編集
さて、これが私がやったことです。使用していないモジュールの一部を取り出し、重複を削除しました。また、setup.py ファイルを次のように修正します。
from distutils.core import setup
import py2exe
import matplotlib
import glob
setup(
windows=[{'script': r'Scout_Tool.py'}],
data_files = matplotlib.get_py2exe_datafiles(),
options={
'py2exe':{
'includes': [
'matplotlib',
'matplotlib.backends.backend_wx',
'matplotlib.pyplot',
'mpl_toolkits.basemap',
'matplotlib.figure',
'wx.calendar',
'mpl_toolkits',
'datetime',
'wx',
'adodbapi',
'sqlparse',
'annote_new',
'cPickle',
'pylab'
],
}
},
)
この後、「dist」フォルダー全体をクリアして、以前から何も保持されていないことを確認しました。次に、CMDプロンプトで次を実行しました: C:\Python27\python setup.py py2exe
. これはエラーなしで実行されました。
次に、Scout_Tool.exe を実行すると、最初に MatPlotLib データ エラーが発生します。なぜこれが発生するのかわかりませんが、修正するには、次のようにします。「library.zip」を解凍し、Mpl-toolkits - basemap - data から「data」フォルダーを追加してから、ライブラリを再圧縮します。フォルダ。
その後、Scout_Tool.exe を実行しようとすると、「os という名前のモジュールがありません」というエラーが表示されます。これは、Scout_Tool.py コードの最初にモジュールを配置した場合に当てはまります。
うまくいけば、これは私がいる場所に役立ちますか? ありがとう!