【问题标题】:Freeze PyGObject applications on Windows在 Windows 上冻结 PyGObject 应用程序
【发布时间】:2018-10-20 01:35:01
【问题描述】:

我目前正在使用 PyGObject 创建一个简单的 GTK+ 应用程序。我主要关注 GNU/Linux,但我也想让它在 Windows 上可用。似乎运行它的唯一方法是在 Windows 上使用 MSYS2 MinGW 并在那里安装库。我还看到了我设法使用的 cx_Freeze 的 setup.py,但 cx_Freeze 没有单个文件选项,我希望有一个捆绑所有依赖项的可移植可执行文件。我在 Arch 系统上成功使用了 PyInstaller,有没有办法在 MinGW 上使用它?或者,我还有哪些其他选项可以冻结和捆绑此应用程序?

【问题讨论】:

    标签: python gtk cx-freeze pygobject


    【解决方案1】:

    如果我对您的理解正确,您已经有了一个可行的解决方案来使用cx_Freeze 冻结您的应用程序,而您的实际问题是:

    如何创建一个可移植的可执行文件,将所有依赖项与 cx_Freeze 捆绑在一起?

    cx_Freeze 本身不支持构建单个文件 exe,您的应用程序的所有库都嵌入在一个可执行文件中,但您有多种选择来创建单个文件安装程序允许您使应用程序在 Windows 上可用:

    1. 您可以使用工具将构建目录从cx_Freeze 压缩成一个自解压存档,请参阅corresponding FAQ in the cx_Freeze documentation

    2. 您可以让cx_Freeze 构建一个简单的安装程序,其中包含cx_Freeze 为您的应用程序所包含的所有文件,方法是运行安装脚本:

      python build.py bdist_msi
      

      请参阅corresponding section of the cx_Freeze documentation

    3. 为了制作更可定制的安装程序,您可以使用NSIS (Nullsoft Scriptable Install System) 等基于脚本的工具,并在cx_Freeze 安装脚本之后运行安装程序生成脚本。

    【讨论】:

      【解决方案2】:

      显然,您可以使用 Msys2 将 Windows 中的 PyGObject 应用程序与 PyInstaller 捆绑在一起。
      此人有一个 SDK,您可以设置它以在沙盒中进行构建。

      https://github.com/exaile/python-gtk3-gst-sdk/tree/master/win_installer

      我自己没用过,但是 PyInstaller 的一位维护者推荐它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-07
        • 1970-01-01
        • 1970-01-01
        • 2016-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多