2008-10-02 79 views
28

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

我不知道部署“真实生活”的Python应用程序,尽管过去我已经使用了py2exe,并取得了不同的成功。我将如何混淆代码?我可以以某种方式只部署字节码吗?

一个理想的解决方案不会危害我的知识产权(源代码),不需要直接安装Python(尽管我相信它需要一些嵌入式解释器),并且会跨平台(Windows ,Mac和Linux)。有没有人知道这方面的任何工具或资源?

谢谢。

+3

如何保护python代码?嗯... http://stackoverflow.com/questions/261638/how-do-i-protect-python-code/261817#261817 – 2009-08-15 10:02:57

回答

2

哇,里面还有很多的问题:

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

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

    • 对于Windows,你可以使用NSIS(http://nsis.sourceforge.net/Main_Page)。这里的问题是,虽然OSX/* nix带有python,但Windows不支持。如果你不愿意用py2exe创建一个二进制文件,我不确定许可问题将围绕Python运行时环境的分发(更不用说技术问题了)。

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

希望这是有帮助的。

+2

Python的字节码是非常高的水平和trivially反编译;分发.pyc文件实际上不是您想要依赖的任何形式的保护。 – 2008-10-02 20:11:33

12

您可以分发编译的Python字节码(.pyc文件)而不是源文件。你不能阻止在Python(或任何其他语言,真的)反编译。你可以使用像pyobfuscate这样的混淆器来让竞争对手破解你的反编译源代码更令人讨厌。

由于Alex Martelli说in this thread,如果你想保密你的代码,你不应该在别人的机器上运行它。

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

1

也许IronPython可以为你提供一些东西吗?我敢打赌,这些.exe/.dll文件可能会被锁定。不知道这些功能如何在单声道工作,因此不知道如何在Linux/OS X上工作...

0

我一直在Windows上使用py2exe取得了不错的成功。代码需要修改一下,以便代码分析可以获取所需的所有模块,但除此之外,它可以工作。

至于Linux中,有几个重要的分发格式:

  • DEB(Debian的,Ubuntu和其它衍生物)
  • RPM(红帽,Fedora的,openSUSE的)

德布斯AREN”特别难做,特别是当你已经使用distutils/setuptools。在the policy document中给出了一些提示,可以在repository中找到打包Python应用程序的示例。

我对RPM没有任何经验,但我确信有足够的例子可以找到。

0

尝试使用scraZ混淆器(http://scraZ.me)。 这是字节码的混淆器,不适用于源代码。 免费版本有很好的,但不是完美的混淆方法。 PRO版本对字节码有很强的保护。 (在字节码混淆之后无法进行反编译)

相关问题