【问题标题】:py2exe not a valid win32 applicationpy2exe 不是有效的 win32 应用程序
【发布时间】:2013-06-19 11:46:42
【问题描述】:

我知道这个话题之前已经讨论过,但似乎没有一个解决方案适合我。

我使用PySide 和其他一些模块创建了一个python 应用程序。 当我编译应用程序时,我没有看到任何错误,它在任何 64 位机器上运行都没有问题。

但是,当我尝试从 32 位 XP 机器上启动它时,我得到了

py2exe not a valid win32 application

我知道必须包含 DLL(我确实将其保存在带有 Microsoft 子文件夹的 dist 文件夹中),但我仍然在 CMD 窗口中看到一条消息,指出某些 DLL 不包括在内。

这是标准消息吗?一种提醒,或者如果包含所有 dll,这条消息会消失吗?我没有收到任何错误。

所以这就是我的困惑的来源。 我还对其他编译器进行了一些 Google 搜索,发现 PyInstaller 显然不适用于 Qt

py2exe 日志

*** binary dependencies ***

Your executable(s) also depend on these dlls which are not included,
you may or may not need to distribute them.

Make sure you have the license if you distribute any of them, and
make sure you don't distribute files belonging to the operating system.

   OLEAUT32.dll - C:\Windows\system32\OLEAUT32.dll
   USER32.dll - C:\Windows\system32\USER32.dll
   IMM32.dll - C:\Windows\system32\IMM32.dll
   SHELL32.dll - C:\Windows\system32\SHELL32.dll
   ole32.dll - C:\Windows\system32\ole32.dll
   WINMM.dll - C:\Windows\system32\WINMM.dll
   MSVCR100.dll - C:\Windows\system32\MSVCR100.dll
   WSOCK32.dll - C:\Windows\system32\WSOCK32.dll
   MSVCP100.dll - C:\Windows\system32\MSVCP100.dll
   COMDLG32.dll - C:\Windows\system32\COMDLG32.dll
   ADVAPI32.dll - C:\Windows\system32\ADVAPI32.dll
   WS2_32.dll - C:\Windows\system32\WS2_32.dll
   WINSPOOL.DRV - C:\Windows\system32\WINSPOOL.DRV
   GDI32.dll - C:\Windows\system32\GDI32.dll
   KERNEL32.dll - C:\Windows\system32\KERNEL32.dll

【问题讨论】:

    标签: pyside py2exe


    【解决方案1】:

    它实际上与 MVS DLL 无关! DLL 问题与 Pyside 有关。 即使我从 Pyside 页面下载了 32 位版本,问题也只有在我从 here 安装 32 位 Pyside 二进制文件后才得到解决!

    【讨论】:

      【解决方案2】:

      EXE/DLL 是否可能是 64 位版本?检查您是否将正确的体系结构可执行文件部署到您的 32 位 Windows XP 计算机。

      【讨论】:

      • 您好,感谢您的回答。这也是我的假设,所以我删除了所有内容并重新安装了 python 和 py2exe 32 位。现在构建后我什至无法在我自己的(64 位)机器上运行它。
      • 创建了一个包含以下内容的日志文件: Traceback(最近一次调用最后一次):文件“KruttschnittGmbH.py”,第 1 行,在 文件“Splash.pyc”,第 1 行,在 文件“PySide\QtGui.pyc”第 12 行中,在 文件“PySide\QtGui.pyc”第 10 行中,在 __load ImportError 中:DLL 加载失败:%1 不是有效的 Win32 应用程序。
      • 你的 64 位开发机器上部署了正确的 pyqt DLL 吗?
      • 嗨,Cameron,我安装了 vcredist_x86.exe,然后从 C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT 复制了它。所以它必须是 32 位的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      • 2013-11-03
      • 2017-04-16
      • 2012-07-03
      • 2019-03-02
      相关资源
      最近更新 更多