如何部署Python桌面应用程序?
我已经开始在桌面上运行的个人python应用程序。我正在使用wxPython作为GUI工具包。如果对此类应用程序有需求,我可能希望将其商业化。
尽管我过去使用py2exe
取得了不同的成功,但是我不知道如何部署"现实生活"的Python应用程序。我如何混淆代码?我可以以某种方式仅部署字节码吗?
理想的解决方案不会损害我的知识产权(源代码),不需要直接安装Python(尽管我确定它需要安装一些嵌入式解释器),并且应该是跨平台的(Windows,Mac和Linux)。有人知道这方面的任何工具或者资源吗?
谢谢。
解决方案
哇,里面有很多问题:
- 可以直接从Python解释器运行字节码(.pyc)文件,但是我还没有看到任何可用的字节码混淆工具。
- 我们可以使用"捆绑"格式打包OS X发行版,并且* NIX具有自己的安装软件约定-通常是" make install"脚本。
希望对我们有所帮助。
我们可以分发已编译的Python字节码(.pyc文件)而不是源代码。我们无法阻止使用Python(或者其他任何语言)进行反编译。我们可以使用像pyobfuscate这样的混淆器,使竞争对手破译反编译源更加烦人。
就像Alex Martelli在该线程中所说的那样,如果要保密代码,则不应在其他人的计算机上运行它。
IIRC,我上次使用cx_Freeze时,它为Windows创建了一个DLL,从而消除了安装本机Python的必要性。这至少值得一试。
也许IronPython可以为我们提供一些服务?我敢打赌,那些.exe / .dll文件可以被锁定了。不知道这些功能如何在mono上工作,因此不知道在Linux / OS X上如何工作。
我一直在Windows上成功使用py2exe。需要对代码进行一些修改,以便代码分析可以提取所有需要的模块,但除此之外,它仍然可以工作。
对于Linux,有几种重要的分发格式:
- DEB(Debian,Ubuntu和其他衍生产品)
- RPM(RedHat,Fedora,openSuSE)
制作DEB并不是特别困难,尤其是当我们已经在使用distutils / setuptools时。策略文档中提供了一些提示,可以在存储库中找到打包Python应用程序的示例。
我没有RPM的任何经验,但是我敢肯定有足够的例子可以找到。