Windows上的Python GTK + 3应用程序安装程序和可执行文件

问题描述 投票:0回答:1

我最近使用GTK完成了一个应用程序,我在Windows上安装了MSYS2和MINGW64。到目前为止,我只能从MSYS2命令行运行应用程序;但是,我正处于需要部署应用程序的阶段(构建安装程序和可执行文件)。

这是我到目前为止从msys2采取的路线:

  1. 来自msys2的py2exe与mingw64的python3.6(GCC 7.3.0 64位)。我可以很好地构建安装文件,但是,当我从msys2 python3 setup.py py2exe运行时,我得到了可怕的IndexError: tuple index out of range。经过一些研究,我得知我得到了这个,因为py2exe还没有支持python> 3.4 pinstaller:从msys2终端,我甚至无法解压这个选项。我收到此错误代码distutils.errors.DistutilsPlatformError: VC 6.0 is not supported by this module

这是我在Windows cmd中从msys2中取出的路线:

  1. cx_Freeze:Pip无法从msys2终端获取此文件,因此我将项目移动到Windows中的文件夹并调整了我的setup.py以查找所有dll和其他必要文件。在实际运行和生成安装程序exe和应用程序exe方面,我使用此选项获得了最大的成功。然而,在运行生成的msi文件然后运行新的可执行文件之后,我收到如下错误:from _gi: cannot load the specified dll。做了一些hacky故障排除(提供其他dll并通过我提供的_gi.pyd阅读)。这是我(相信)我学到的东西。 _gi.pyd指定python dll和visual c运行时dll包含import语句import gi catalyst(import _gi; from . import _.gi; etc.)。这些指定了我项目的msys2环境使用的dll,所以我将它们添加到我的setup.py中。在这之后,我得到一个错误,注意到我的应用程序需要一个与另一个python dll(我试图提供的那个)冲突的python3.dll

这是我认为我知道的,请有人,告诉我我错了,所以我不必用pyQt5重建我的应用程序(实际上没有msys2和mingw64工作):

我需要想办法只提供mingw64使用的python和c dll(即命令python setup.py bdist_msi似乎自动包含并从我的安装程序解压缩的python3.dll)并将这些与我的应用程序捆绑在一起。

或者我需要找到一种方法来安装不同的python 3(python 3.4)到我的mingw64路径,以便使用py2exe(它安装在该环境中)。尽管如此,我还是要弄清楚如何为这个路径提供一个合适的msvc dll,以便应用程序仍能正常工作。

或者我需要重建我的应用程序。

有没有人成功开发了这些规范的Windows安装程序和可执行文件(msys2,mingw64,GTK + 3和mingw64的python3.6.5和GCC 7.3.0 64位)?有没有办法在msys2终端中进行上述任何一种方法来完成这项工作?有没有办法让这些工作在Windows cmd(我可以实际上让cx_Freeze和py2exe工作)?我有什么选择吗?

道歉为长篇大论。

python windows installer gtk3 mingw-w64
1个回答
1
投票

Distribute GTK3 Applications made in Python with reduced MSYS2

以下是使用更新的MSYS2软件包分发用Python编写的GTK + 3应用程序的替代解决方案,但不会创建可执行文件,抱歉。

它只将python脚本所需的文件(只要它们在MSYS2文件夹中,包括gtk和python模块)复制到dist文件夹,您可以将其复制到另一台Windows机器上。我已经进行了测试,输出大小约为51 MB。

© www.soinside.com 2019 - 2024. All rights reserved.