如何部署Python桌面应用程序?

mma*_*tax 30 python deployment

我已经开始在桌面上运行个人python应用程序.我使用wxPython作为GUI工具包.如果需要这种类型的应用程序,我可能希望将其商业化.

我不知道部署"真实"的Python应用程序,尽管我py2exe过去曾使用过不同的成功.我如何模糊代码?我可以以某种方式只部署字节码吗?

一个理想的解决方案不会危害我的知识产权(源代码),不需要直接安装Python(虽然我确定它需要一些嵌入式解释器),并且是跨平台的(Windows,Mac和Linux的).有谁知道这个领域的任何工具或资源?

谢谢.

cdl*_*ary 13

您可以分发已编译的Python字节码(.pyc文件)而不是源代码.你无法阻止Python(或其他任何语言)的反编译.您可以使用像pyobfuscate这样的混淆来让竞争对手破解您的反编译源更加烦人.

正如Alex Martelli 在这篇帖子中所说,如果你想保密你的代码,就不应该在其他人的机器上运行它.

IIRC,我最后一次使用cx_Freeze它为Windows创建了一个DLL,它消除了本机Python安装的必要性.这至少值得一试.


pjb*_*ley 2

哇,里面有很多问题:

  • 可以直接从 Python 解释器运行字节码 (.pyc) 文件,但我还没有看到任何可用的字节码混淆工具。

  • 我不知道有任何“一体化”部署解决方案,但是:

    • 对于 Windows,您可以使用 NSIS(http://nsis.sourceforge.net/Main_Page)。这里的问题是,虽然 OSX/*nix 附带了 python,但 Windows 却没有。如果您不愿意使用 py2exe 构建二进制文件,我不确定围绕 Python 运行时环境的分发会出现哪些许可问题(更不用说技术问题了)。

    • 您可以使用“bundle”格式打包 OS X 发行版,并且 *NIX 有自己的软件安装约定——通常是“make install”脚本。

希望这有帮助。

  • Python 的字节码是非常高级的并且可以轻松反编译;分发 .pyc 文件确实不是您想要依赖的任何形式的保护。 (2认同)