Python py2exe 导入错误:加载 glib\_glib.pyd 失败

4 投票
1 回答
1232 浏览
提问于 2025-04-18 18:47

我在用py2exe制作一个单文件的可执行文件(exe)时遇到了问题。当我运行程序时,出现了:

Traceback (most recent call last):
File "keys.py", line 3, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "gtk\__init__.pyo", line 30, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "gobject\__init__.pyo", line 26, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "glib\__init__.pyo", line 22, in <module>
File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading glib\_glib.pyd

我有一个setup.py文件:

from distutils.core import setup
import py2exe, sys, os, gtk

sys.argv.append('py2exe')

setup(
options = {'py2exe': {
    'includes': "cairo, pango, pangocairo, atk, gobject, gio",
    'bundle_files': 1,
    "excludes": "pywin, pywin.dialogs, pywin.dialogs.list, svn",
    "packages": "email, encodings",
    "dll_excludes": ["mswsock.dll, powrprof.dll, shfolder.dll, credui.dll, msvcp60.dll, secur32.dll"],
    "optimize":2,
    'compressed': True
    }
},
windows=[{'script':'keys.py'}],
zipfile = None,
)

当我设置bundle_file = 3时,一切都正常,但我无法让bundle_file设置为1或2正常工作,结果总是出现MemoryLoadLibrary关于glib的错误。

我重新安装了python2.7,安装了pygtk的全套包。还清除了pygtk的安装,尝试从独立包安装PyCairo、PyGObject、Glade和PyGtk,但仍然出现同样的Import Error

我的setup.py文件之所以这么大,是因为我查阅了很多关于其他pyd问题的资料,虽然这些问题和glib无关,但我还是把所有建议都加到了setup里,希望能让它正常工作。

有没有办法解决这个ImportError?我是不是做错了什么?

1 个回答

-1

Python是一种解释型语言,这意味着它会把所有的变量和临时数据都存储在电脑的内存(RAM)里。如果你遇到内存不够用的问题,可以试着换一台内存更大的电脑,或者使用任务管理器关闭一些不需要的后台程序来释放内存。

撰写回答