周海汉 /文
2010.2.7
今天用py2exe打包python程序,结果遇到如下错误:
*** searching for required modules *** *** parsing results *** creating python loader for extension 'wx._misc_' (c:\python26\lib\site-packages\ wx-2.8-msw-unicode\wx\_misc_.pyd -> wx._misc_.pyd) creating python loader for extension 'select' (c:\python26\DLLs\select.pyd -> se lect.pyd) creating python loader for extension 'unicodedata' (c:\python26\DLLs\unicodedata .pyd -> unicodedata.pyd) creating python loader for extension 'wx._windows_' (c:\python26\lib\site-packag es\wx-2.8-msw-unicode\wx\_windows_.pyd -> wx._windows_.pyd) creating python loader for extension 'wx._core_' (c:\python26\lib\site-packages\ wx-2.8-msw-unicode\wx\_core_.pyd -> wx._core_.pyd) creating python loader for extension 'wx._gdi_' (c:\python26\lib\site-packages\w x-2.8-msw-unicode\wx\_gdi_.pyd -> wx._gdi_.pyd) creating python loader for extension 'wx._controls_' (c:\python26\lib\site-packa ges\wx-2.8-msw-unicode\wx\_controls_.pyd -> wx._controls_.pyd) creating python loader for extension 'bz2' (c:\python26\DLLs\bz2.pyd -> bz2.pyd) *** finding dlls needed *** error: MSVCP90.dll: No such file or directory
*** finding dlls needed ***
error: MSVCP90.dll: No such file or directory
解决办法:
因为包含wxpython模块,需下载MSVCP90.DLL 并拷贝到Python26/DLLs 目录下
1.直接下载安装微软vc++ 2008 分发包:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf
会安装到:
C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30411.0_x-ww_71382c73目录下
可能不同的系统会稍有不同,但C:\WINDOWS\WinSxS\x86_Microsoft.VC90...这个是一致的。
而且直接在windows里搜索搜不到。
2.单独下载MSVCP90.DLL 并拷贝到Python26/DLLs 目录下
http://www.dll-files.com/dllindex/dll-files.shtml?msvcp90
3.由于本机也能运行,确认不需要msvcp90.dll,可以直接在脚本中去掉包含该dll。但可能在其他人机器不能运行。
在py2exe的setup.py包含如下的代码:
distutils.core.setup( options = { "py2exe": { "dll_excludes": ["MSVCP90.dll"] } }, ... )
或
from distutils.core import setup import py2exe setup( windows=['main.py'], options = { "py2exe": {"dll_excludes":["MSVCP90.dll"]} } )
4.如果已经安装msvc++ 2008以上,而找不到目录,可以如下设置,找到分发目录。
import sys sys.path.append('c:/Program Files/Microsoft Visual Studio 9.0/VC/redist/x86/Microsoft.VC90.CRT')
本文介绍使用py2exe工具打包包含wxPython模块的Python程序时遇到MSVCP90.dll缺失的问题及其解决方法。提供了四种解决方案:安装VC++2008分发包、单独下载DLL文件、排除特定DLL及调整py2exe配置。
2万+

被折叠的 条评论
为什么被折叠?



