You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows环境下为Python 3.7编译GTK/PyGObject全合一安装包?

Windows平台Python 3.7+ 版本PyGObject(PyGI)全合一安装包制作方案

旧版公开的pygobjectwin32包确实已停止更新,最高仅支持Python 3.4,目前行业内通用的替代方案是从MSYS2环境提取完整依赖,打包为可独立分发的全合一包,效果和你之前使用的PyGTK全合一包完全一致,具体步骤如下:

  • 准备MSYS2构建环境
    打开MSYS2的Mingw-w64 64位终端,先执行pacman -Syu更新系统源,重复运行直到所有包更新完成。根据你需要的Python版本安装对应依赖,以Python 3.10、64位环境为例,安装命令为:pacman -S mingw-w64-x86_64-python3 mingw-w64-x86_64-gtk3 mingw-w64-x86_64-python-gobject mingw-w64-x86_64-python-cairo mingw-w64-x86_64-gobject-introspection。如果你的应用需要其他GI绑定(如GtkSourceView、GStreamer等),也可提前通过pacman安装对应包。
  • 提取独立PyGI运行环境
    新建空文件夹作为打包根目录,例如D:\pygi-package。将MSYS2安装路径下的mingw64\bin、mingw64\lib\python3.10(替换为你安装的Python小版本号)、mingw64\lib\girepository-1.0、mingw64\share\glib-2.0、mingw64\share\icons这几个核心目录完整复制到打包根目录中。
    之后运行ldd mingw64\bin\python.exe和ldd mingw64\bin\libgirepository-1.0-1.dll命令,检查所有依赖的dll文件,将遗漏的dll全部复制到打包根目录的bin文件夹下,避免运行时缺库报错。
  • 验证环境可用性
    将打包根目录移动到和MSYS2完全无关的路径(例如桌面),运行根目录下bin文件夹中的python.exe,依次执行以下代码验证功能:
    import gi
    gi.require_version('Gtk', '3.0')
    from gi.repository import Gtk
    win = Gtk.Window(title='PyGI Test')
    win.connect('destroy', Gtk.main_quit)
    win.show()
    Gtk.main()
    
    确认可以正常弹出GTK窗口、无任何报错后,即说明环境提取成功。
  • 打包为全合一安装包
    你之前已经有InnoSetup的使用经验,直接将打包根目录的所有文件和官方Python 3.x Windows安装包整合到你的安装脚本中即可。安装时可选择将PyGI的bin目录加入系统PATH,也可仅为你的应用配置私有环境调用,和之前分发Python 2/PyGTK应用的逻辑完全兼容。

小提示:如果需要缩减安装包体积,可以删除Python目录下的测试文件、site-packages中不需要的内置库,以及dll文件中的调试符号,最终体积可压缩至原提取包的30%左右。

内容的提问来源于stack exchange,提问作者Daniel Gonçalves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:57:02