编辑: 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
)