可能重复:
Outputed py2exe exe won't run only when signed: ImportError
之前我问了一个类似的问题(Creating executable with Py2exe and matplotlib errors)处理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命名为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的文件夹 - 底图 - 数据,然后重新压缩库文件夹。
然后,当我尝试运行Scout_Tool.exe时,它会出现错误,"没有名为os"存在。如果我在Scout_Tool.py代码中放置任何模块,则为true。
希望这有助于我所处的位置?谢谢!
答案 0 :(得分:2)
我编译了你的程序(导入),它对我来说运行正常。 如果您没有使用这些模块,那么py2exe错过的模块报告就不相关了(我得到了与您显示的相同的列表)。
请记住,当您在dist模块py2exe创建时执行它时,可执行文件将运行(例如,不是从桌面上的副本执行。为此,您需要建立直接访问链接)。
答案 1 :(得分:0)
不会因此而受到赞扬,但其中任何一项都有助于解决您的问题吗?
http://www.python-forum.org/pythonforum/viewtopic.php?f=3&t=6659
Outputed py2exe exe won't run only when signed: ImportError
这个问题也是
的延续