1

编辑: Windows 7 机器是 64 位,Windows XP 是 32 位

我使用 PyGTK、xlrd、xlwt 和 xlutils 制作了一个 Windows 应用程序。我已经使用 Py2Exe 将 python 脚本转换为 .exe 并且 .exe 执行并在我的 Windows 7 笔记本电脑上正常运行。

我的问题:当我将应用程序(及其 dll)移植到运行 WindowsXP 的计算机时,.exe 无法打开。.exe 无法正常工作的原因可能是什么?

MyApp.exe.log 错误输出:

C:\Users\WindowsXPUser\MyApp.exe:11: GtkWarning: `C:\Users\Windows7User\Email Contact Manipulation\dist\lib\gtk-2.0\2.10.0\engines\libwimp.dll': %1 不是一个有效的 Win32 应用程序。回溯(最后一次调用):
文件“MyApp.py”,第 5 行,
文件“gtk__init__.pyc”,第 40 行,
文件“gtk_gtk.pyc”,第 12 行,
文件“gtk_gtk.pyc”,第 10 行,在 __load ImportError: DLL load failed: 找不到指定的过程。

相关信息:

  • 我使用 Python 2.7,GTK 版本 2.0
  • .exe 是使用 Py2Exe 生成的,我在 Windows 7 笔记本电脑上执行此操作
  • 我已将整个 'dist' 文件夹复制到 Window XP 机器上,因此所有 dll 和其他文件都带有 .exe

当 .exe 在我的 Windows 7 机器上运行良好时,您认为 .exe 无法在 Windows XP 机器上运行的原因是什么?

我的 setup.py 代码:

# setup.py
from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(
    name = 'Bounceback Handler',
    description = '',
    version = '1.0',

    windows = [
                  {
                      'script': 'MyApp.py'
                  }
              ],

    options = {
                  'py2exe': {
                      'packages':'encodings',
                      'includes': 'cairo, pango, pangocairo, atk, gobject, gio',
                  }
              },

    data_files=None
)
4

1 回答 1

0

如果您使用的是安装在 Windows 7 机器上的 64 位版本的 Python,它会创建一个 64 位的可执行文件。这不会在您的 32 位 XP 系统上运行。您必须安装 32 位版本的 python,然后使用 32 位版本的 py2exe 来创建您的可执行文件。

否则 Py2exe 可能会出现这样的奇怪问题。我会推荐使用PyInstaller

于 2012-06-05T02:20:36.360 回答