发布wxPython应用:是分发脚本还是编译成Exe等?
我有一个快完成的wxPython应用程序,我想把它放到我的作品集中。但是我得考虑到,当别人尝试运行我的应用时,他们可能没有安装Python或者wxPython,所以如果他们直接点击主脚本或者Python文件,是不是就不能运行了,对吧?
我应该怎么分发我的应用程序(你们是怎么分发你们的应用的),才能让它可以运行,并且能在三大主流操作系统上(Unix、Windows、MacOSX)都能使用呢?
我知道在Windows下可以用py2exe来发布,但在Unix和MacOSX上我可以用什么来编译程序呢?最简单的方法是什么?
3 个回答
我建议两种方法,给所有平台提供脚本,同时也给懒惰的Windows用户准备一个已经打包好的程序。
关于你最新的问题,Python并不是通过编译来运行的。Python是一种解释型语言,它在运行时会即时编译。所谓的“打包好的程序”其实就是把Python解释器和你的脚本一起打包在里面。并且,打包好的程序通常只适用于Windows,按照我所知道的。此外,Unix和MacOS一般都是预装了Python的。
你可以在Windows上使用py2exe,在Mac上使用py2app。PyInstaller可以在Windows和Linux上使用。个人来说,我用的是GUI2Exe,它把这三种工具都整合在一起,让使用起来简单一些。需要注意的是,我没有Mac,所以没法在那上面试过。你可以在这里查看我关于冻结Python的系列文章:
http://www.blog.pythonlibrary.org/2010/08/10/a-pyinstaller-tutorial-build-a-binary-series/
http://www.blog.pythonlibrary.org/2010/07/31/a-py2exe-tutorial-build-a-binary-series/
http://www.blog.pythonlibrary.org/2010/08/31/another-gui2exe-tutorial-build-a-binary-series/
博客上还有其他一些相关的内容。
可以使用 Gui2exe 来打包你的程序,然后用 UPX 来压缩,这样可以减小文件的体积。
如果你想制作一个带有卸载信息的安装文件(exe),可以使用 Inno-Setup,这个工具很好用。
我用过这个方法好几次,都是用 wxpython 制作的,能在所有的 Windows 版本上运行。
在 Gui2exe 中,选择优化(2) - 压缩(2) - 打包文件(3)。
打包文件(3) 是最稳定的选项,打包文件(1) 会生成一个大的 exe 文件。如果你只想要一个 exe 文件,最后一步最好还是用 Inno-Setup。