我之前问过一个类似的问题(使用 Py2exe 和 matplotlib 错误创建可执行文件)处理 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 Prompt 中运行了以下命令 C:\Python27\python setup.py py2exe
:这运行没有错误。
然后当我去运行 Scout_Tool.exe 时,我首先得到一个 MatPlotLib 数据错误。我不知道为什么我会得到这个,但要解决它,我做了以下事情:我解压缩“library.zip”,然后从 Mpl-toolkits - basemap - data 添加“data”文件夹,然后重新压缩库文件夹。
然后,当我尝试运行 Scout_Tool.exe 时,出现“没有名为 os 的模块”的错误。如果我将任何模块放在我的 Scout_Tool.py 代码中,这是正确的。
希望这有助于我在哪里?谢谢!