周海汉 /文
2010.2.7
今天用py2exe打包python程序,结果遇到如下错误:
*** 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包含如下的代码:
或
4.如果已经安装msvc++ 2008以上,而找不到目录,可以如下设置,找到分发目录。