Gtk-WARNING: 无法在模块路径中找到主题引擎:"wimp
我开发了一个在Windows上运行的Gtk应用程序。为了生成一个可执行文件,我使用了pyInstaller。只要不是因为主题没有加载,一切都还不错。
我有我的配置文件:
# -*- mode: python -*-
directory = 'C:\\my_project'
a = Analysis(['main.py'],
pathex=[directory],
hiddenimports=None,
hookspath=None)
more_datas = []
more_binaries = []
more_datas.append(('gtkrc', os.path.join(directory, 'gtkrc'), 'DATA'))
more_binaries.append(('libwimp.dll', os.path.join(directory, 'libwimp.dll'), 'BINARY'))
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries + more_binaries,
a.zipfiles,
a.datas + more_datas,
name='main.exe',
debug=False,
strip=None,
upx=True,
console=True)
在数据部分,我加入了gtkrc文件,而在二进制文件部分,我加入了libwimp.dll。这两个文件都在我的应用程序目录里。
在我的项目Python代码中,我有:
def resource_path(relative):
directory = getattr(sys, '_MEIPASS', os.getcwd())
return os.path.join(directory, relative)
theme = resource_path("gtkrc")
gtk.rc_set_default_files([theme])
gtk.rc_reparse_all_for_settings(gtk.settings_get_default(), True)
gtk.rc_reset_styles(gtk.settings_get_for_screen(window.get_screen()))
当我运行这个应用程序时,会创建一个临时目录("_MEIXXXXXX"),并且这两个文件会被放到那里。
但是控制台显示了这个信息:
Gtk-WARNING: 无法在模块路径中找到主题引擎: "wimp"
而且主题没有加载。这个警告是在下面的代码被调用后出现的:
gtk.rc_reparse_all_for_settings(gtk.settings_get_default(), True)
我缺少了什么呢?
1 个回答
0
我找到了我出错的地方。
问题在于我把主题文件复制到了我应用程序的本地目录里。libwimp.dll这个文件必须在一个特定的文件夹里创建,才能在临时文件夹中正常工作。
这个小建议帮我解决了问题: