我是一名使用Linux(Ubuntu)系统进行开发的Python开发人员。我想为Windows用户编写GUI应用程序。这些用户不是开发人员,因此我希望尽可能简化安装/执行。
目前,在我看来,我需要用户安装GTK / Qt,然后使用pip
来安装我的应用程序。这似乎太复杂了。
有没有办法获得没有依赖关系的Windows二进制文件,只需启动GTK3应用程序? (目前,我的代码相对简单,如果您有兴趣,请参阅http://pastebin.com/rNcFm1m7。)
我尝试使用pyinstaller。我在我的Linux机器上运行以下命令,this code保存为formula_writer.py
。
pyinstaller --onefile formula_writer.py; dist/formula_writer
它不起作用:
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
由于GTK3可能是问题,我用GTK2编写了一个非常简单的Python GUI应用程序:
#!/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
答案 0 :(得分:0)
您必须拥有Windows计算机。没有办法。
但是,在Windows机器上有多个简单的选项:
pyinstaller
:尝试过,工作py2exe
:到目前为止我没有尝试过如果你有一个Python包,你也可以去
python setup.py bdist --formats=wininst
:Works,创建安装程序python setup.py bdist --formats=msi
:Works,也会创建一个安装程序