py2exe打包,遇到找不到msvcp9.dll 周海汉 /文 http://blog.csdn.net/ablo_zhou/archive/2010/02/07/5295750.aspx 2010.2.7 今天用py2exe打包python程序,结果遇到如下错误: view plaincopy to clipboardprint? *** 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 *** 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包含如下的代码: view plaincopy to clipboardprint? distutils.core.setup( options = { "py2exe": { "dll_excludes": ["MSVCP90.dll"] } }, ... ) distutils.core.setup( options = { "py2exe": { "dll_excludes": ["MSVCP90.dll"] } }, ... ) 或 view plaincopy to clipboardprint? from distutils.core import setup import py2exe setup( windows=['main.py'], 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以上,而找不到目录,可以如下设置,找到分发目录。 view plaincopy to clipboardprint? import sys sys.path.append('c:/Program Files/Microsoft Visual Studio 9.0/VC/redist/x86/Microsoft.VC90.CRT')
posted on 2010-08-23 07:46  菜刀大侠  阅读(984)  评论(0编辑  收藏  举报