python教程—py2exe无法生成可执行文件-Python实用宝典

python教程—py2exe无法生成可执行文件

我在XP上使用python 2.6。我刚刚安装了py2exe,我可以成功地从hello.py创建一个简单的hello.exe。然而,当我在我的实际程序中尝试使用py2exe时,py2exe生成了一些信息消息,但是在dist文件夹中没有生成任何内容。

我在XP上使用python 2.6。我刚刚安装了py2exe,我可以成功地从hello.py创建一个简单的hello.exe。然而,当我在我的实际程序中尝试使用py2exe时,py2exe生成了一些信息消息,但是在dist文件夹中没有生成任何内容。

我的setup.py是这样的:

from distutils.core import setup
import py2exe

setup(console=['ServerManager.py'])

py2exe输出是这样的:

python setup.py py2exe
running py2exe
creating C:DevSourceScriptsServerManagerbuild
creating C:DevSourceScriptsServerManagerbuildbdist.win32
   ...
   ...
creating C:DevSourceScriptsServerManagerdist
*** searching for required modules ***
*** parsing results ***
creating python loader for extension 'wx._misc_' (C:Python26libsite-packageswx-2.8-msw-unicodewx_misc_.pyd -> wx._misc_.pyd)
creating python loader for extension 'lxml.etree' (C:Python26libsite-packageslxmletree.pyd -> lxml.etree.pyd)
   ...
   ...
creating python loader for extension 'bz2' (C:Python26DLLsbz2.pyd -> bz2.pyd)
*** finding dlls needed ***

py2exe似乎已经找到了我所有的导入(尽管看到win32被提到我有点吃惊,因为我没有显式地导入它)。此外,我的程序开始与这个命令相当愉快:

python ServerManager.py

很明显,我做了一些根本错误的事情,但是在没有来自py2exe的任何错误消息的情况下,我不知道是什么。

回答

我发现,如果我注释掉程序中使用wxPython的部分,py2exe就可以正常工作。此外,当我在下载的“简单”示例(即Python26Libsite-packagespy2exesamplessimple)上使用py2exe时,我得到了这个错误消息:

    *** finding dlls needed *** error: MSVCP90.dll: No such file or directory

所以关于wxPython的一些东西让py2exe认为我需要一个Visual Studio 2008 DLL。我没有VS2008,但是我的程序作为Python模块目录可以很好地工作。我在web上找到了MSVCP90.DLL的副本,将其安装在Python26/ dll中,py2exe现在可以正常工作了。

我仍然不明白这种依赖从何而来,因为我可以在没有py2exe的情况下完美地运行代码。同样令人恼火的是,py2exe没有像test_wx.py样例那样给出错误消息。

进一步更新:当我试图在另一台PC上运行py2exe的输出时,我发现它需要安装MSVCR90.DLL;因此,如果您的目标PC还没有安装Visual c++ 2008,我建议您下载并安装Microsoft Visual c++ 2008 Redistributable Package

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论