Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从带有GUI的Python应用程序中获得没有依赖项的Windows二进制文件?_Python_Windows_Gtk - Fatal编程技术网

如何从带有GUI的Python应用程序中获得没有依赖项的Windows二进制文件?

如何从带有GUI的Python应用程序中获得没有依赖项的Windows二进制文件?,python,windows,gtk,Python,Windows,Gtk,我是一名Python开发人员,使用Linux Ubuntu系统进行开发。我想为Windows用户编写GUI应用程序。这些用户不是开发人员,因此我希望使安装/执行尽可能简单 目前,在我看来,我需要用户安装GTK/Qt,然后使用pip安装我的应用程序。这似乎太复杂了 有没有一种方法可以获得一个没有依赖项的Windows二进制文件,它只是启动GTK3应用程序?目前,我的代码比较简单,看看您是否感兴趣 我试过的 pyinstaller 我尝试使用pyinstaller。我在Linux机器上使用另存为fo

我是一名Python开发人员,使用Linux Ubuntu系统进行开发。我想为Windows用户编写GUI应用程序。这些用户不是开发人员,因此我希望使安装/执行尽可能简单

目前,在我看来,我需要用户安装GTK/Qt,然后使用pip安装我的应用程序。这似乎太复杂了

有没有一种方法可以获得一个没有依赖项的Windows二进制文件,它只是启动GTK3应用程序?目前,我的代码比较简单,看看您是否感兴趣

我试过的 pyinstaller 我尝试使用pyinstaller。我在Linux机器上使用另存为formula_writer.py运行了以下命令

它不起作用:

Traceback (most recent call last):
  File "<string>", line 8, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "/home/moose/FormulaWriter/build/formula_writer/out00-PYZ.pyz/gi", line 42, in <module>
ImportError: cannot import name _gi
它仍然不起作用:

Traceback (most recent call last):
  File "<string>", line 5, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "/home/moose/FormulaWriter/build/formula_writer_gtk2/out00-PYZ.pyz/gtk", line 30, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "/home/moose/FormulaWriter/build/formula_writer_gtk2/out00-PYZ.pyz/gobject", line 26, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "/home/moose/FormulaWriter/build/formula_writer_gtk2/out00-PYZ.pyz/glib", line 22, in <module>
ImportError: No module named _glib

你必须有一台Windows电脑。没有办法

但是,在Windows计算机上有多个简单的选项:

:试过的,有用的 当前位置到目前为止我还没有试过 如果你有一个Python包,你也可以使用

python setup.py bdist-formats=wininst:Works,创建安装程序 python setup.py bdist-formats=msi:Works还创建一个安装程序
你需要一个windows框。。。。您需要使用pyinstallerpython my_script.py之类的东西构建包,它在Linux上工作,但我无法在Linux上执行二进制文件。我没有尝试它是否在Windows上工作。所以我猜pyinstaller不支持GTK3。好啊但GTK2似乎也不起作用,请参见更新的问题。首先确保您可以在windows计算机上使用python my_script.py运行它。。。不管怎样,我现在正在安装gtk。。。我会尽快让你知道。。。你为什么还在做linux的东西?这个问题是关于windows的,我想?我不知道pyinstaller在linux上运行得有多好…@JoranBeasley是的,这个问题是关于Windows的。但我家里只有一台Linux机器。如果我想在windows上测试一些东西,我必须上大学。我认为,如果它不适用于Linux,它就不可能适用于windows。我明天用Windows试试。谢谢你帮助我!当然对我来说很好。。。首先,我确保可以使用python script.py运行您的第二个示例。。。然后我构建了C:\pyinstaller\pyinstaller.py-onefile script.py。。。下面是指向生成的exe的链接
#!/usr/bin/env python
# example base.py
import pygtk
pygtk.require('2.0')
import gtk


class Base:
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.connect("destroy", self.destroy)
        self.window.show()

    def destroy(self, widget, data=None):
        gtk.main_quit()

    def main(self):
        gtk.main()
print(__name__)

if __name__ == "__main__":
    base = Base()
    base.main()
Traceback (most recent call last):
  File "<string>", line 5, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "/home/moose/FormulaWriter/build/formula_writer_gtk2/out00-PYZ.pyz/gtk", line 30, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "/home/moose/FormulaWriter/build/formula_writer_gtk2/out00-PYZ.pyz/gobject", line 26, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "/home/moose/FormulaWriter/build/formula_writer_gtk2/out00-PYZ.pyz/glib", line 22, in <module>
ImportError: No module named _glib