py2exe包括.exe中的MSVC DLL

时间:2008-10-08 06:34:21

标签: python dll py2exe

当使用py2exe通过wxPython分发Python应用程序时,通常需要一些MSVC DLL来使.exe在新安装的机器上运行。特别是,两个最常见的DLL是msvcp71.dll和msvcr71.dll

前者可以使用this tip包含在.exe中。但是,后者只是通过py2exe放在dist目录中,而不是放在可执行文件中,即使我特别要求包含它。

知道如何让py2exe包含在.exe中吗?

3 个答案:

答案 0 :(得分:7)

那么它不会失败吗?您希望msvcr71.dll与exe在同一目录中,以便库加载器能够找到并将其链接到应用程序的内存映射中。

这是基本操作所必需的,所以你不能让py2exe用其他DLL解压缩它。

答案 1 :(得分:1)

py2exe无法做到这一点。你可以包装py2exe(有an example on the wiki显示如何使用NSIS);如果使用NSIS或InnoSetup不是一个选项,你可以建立自己的包装器。

或者,如果您肯定您的用户将安装msvcr71.dll的兼容副本(IIRC Vista或XP SP2用户),那么您可以在不包括它的情况下逃脱。更有用的,也许,如果你使用Python 2.3(或更早版本),那么Python链接msvcr.dll而不是msvcr71.dll,并且任何Windows用户都会安装它,所以你可以不用担心它。

答案 2 :(得分:1)

是的,py2exe可以做到这一点。 View this link.如果您使用的是python2.7,请将“msvcr71”替换为“msvcp90”。