December
29th,
2010
在一个机器上打包的程序,放到另一个机器上运行就会报错:“由于应用程序配置不正确,程序未能启动.重新安装应用程序可能会纠正这个错误”。
参考这个文章:http://www.py2exe.org/index.cgi/Tutorial#Step52,鼓捣了半天发现不行,还以为是windows server 2003的问题,又上网搜了半天,dependencewalk都用上了;最后又仔细阅读了一下,原来需要把Microsoft.VC90.CRT.manifest也一起放到CRT目录下,郁闷。
最后如果是wxPython程序,报下面错误:
Traceback (most recent call last):
File "test_wx.py", line 1, in <module>
File "wxPython\__init__.pyc", line 15, in <module>
File "wxPython\_wx.pyc", line 3, in <module>
File "wxPython\_core.pyc", line 15, in <module>
File "wx\__init__.pyc", line 45, in <module>
File "wx\_core.pyc", line 4, in <module>
File "wx\_core_.pyc", line 12, in <module>
File "wx\_core_.pyc", line 10, in __load
ImportError: DLL load failed: 找不到指定的模块。
可以把msvcp90.dll放到exe同级目录。我的setup.py脚本如下。
from distutils.core import setup
import py2exe
from glob import glob
data_files = [("Microsoft.VC90.CRT", glob(r'..\msvcrt\*.*')), \
('', glob(r'..\msvcrt\MSVCP90.dll')), \
('', glob(r'load.exe')) ]
setup(
#options = {
# "py2exe": {
# "dll_excludes": ["MSVCP90.dll"]
# }
#},
windows=["ui.py"],
data_files=data_files,
)