当前位置: 首页 > 面试题库 >

py2exe无法生成可执行文件

戚澄邈
2023-03-14
问题内容

我在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:\DevSource\Scripts\ServerManager\build
creating C:\DevSource\Scripts\ServerManager\build\bdist.win32
   ...
   ...
creating C:\DevSource\Scripts\ServerManager\dist
*** 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 'lxml.etree' (C:\Python26\lib\site-packages\lxml\etree.pyd -> lxml.etree.pyd)
   ...
   ...
creating python loader for extension 'bz2' (C:\Python26\DLLs\bz2.pyd -> bz2.pyd)
*** finding dlls needed ***

py2exe似乎已经找到了我的所有导入文件(尽管看到win32时我感到有些惊讶,因为我没有明确导入它)。此外,我的程序使用以下命令非常愉快地启动:

python ServerManager.py

显然,我在做一些根本上错误的事情,但是在没有py2exe的任何错误消息的情况下,我也不知道该怎么办。


问题答案:

我发现,如果我注释掉使用wxPython的程序部分,则py2exe可以正常工作。另外,当我在下载所附带的“简单”示例中使用py2exe时(即在Python26
\ Lib \ site-packages \ py2exe \ samples \ simple中),我得到以下错误消息:

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

因此,关于wxPython的某些事情使py2exe认为我需要Visual Studio 2008
DLL。我没有VS2008,但是我的程序作为Python模块目录完全可以正常工作。我在网上找到了MSVCP90.DLL的副本,并将其安装在Python26
/ DLL中,并且py2exe现在可以正常工作。

我仍然不了解这种依赖关系的来源,因为我可以在没有py2exe的情况下完美地运行我的html" target="_blank">代码。同样令人讨厌的是py2exe没有像test_wx.py示例那样给我错误信息。

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



 类似资料:
  • 问题内容: 我以为我听说py2exe可以做到这一点,但我从来没有想过。有人成功做到了吗?我可以看到您的setup.py文件以及使用的哪些命令行选项吗? 基本上,我在考虑给它一个可执行文件,该文件执行诸如将自身解压缩到/ temp并运行的操作。 问题答案: 将创建一个没有依赖关系的.exe文件;使用该选项。它通过将所有需要的共享库打包到可执行文件中,然后在运行之前解压缩它们来完成此操作,正如你所描述

  • 问题内容: 为了创建可执行文件(Windows),我假设我们应该使用其中之一:Py2exe或PyInstaller。 它们之间有什么区别? 问题答案: Py2exe和PyInstaller都是包装器,但是我注意到了一些区别, Py2exe与python2.4 +兼容,包括python3.0和3.1,而PyInstaller当前与python 2.7和3.3–3.5兼容 据我所知,Py2exe不支持

  • 我正在使用spring boot部署应用程序 在我的pom里我有: 知道吗?

  • 当我尝试编译我的应用程序时,我得到以下错误: 现在我一直在stackoverflow和其他网站上搜索,我不是唯一一个遇到这个问题的人。我尝试了这个解决方案,也重启了几次程序,并完全重新安装了Android Studio。我仍然得到了同样的错误。我还尝试手动从 文件夹,并手动将最新版本的gradle放入该文件夹。 没有任何帮助。还是会出错。

  • 我试图使一个python可执行文件使用oct2py来评估一个. m文件。python脚本独立运行良好。我已经成功地使用pyInster制作了一个可执行文件(使用--onefile,在构建它时没有错误),但是当我运行这个可执行文件时,我得到了以下错误,可执行文件退出了: 看来这个问题是第一次出现在“百万富翁”身上。py’,但我不知道它在哪里寻找‘阅读器’。垫子'。我认为“读者”。mat'是由oct2

  • TL;DR:为什么npm不构建依赖项的二进制可执行文件,我如何构建它们而不显式? 我的项目在一个常规的package.json中描述了它的依赖关系。当我运行时,所有包都按预期安装到node_modules中。然而,有三个包有供应商子目录,这些子目录中应该有二进制可执行文件,但它们没有按照预期进行编译。 $ls/usr/src/app/node_modules/optipng-bin/vendor/