我已经开始制作一个运行在桌面上的个人 Python 应用程序,使用 wxPython 作为 GUI 工具包。如果有需求,我可能会考虑商业化。
我没有部署“真实”Python应用程序的知识,尽管我以前曾经使用过 py2exe
,但效果不一。我该如何混淆代码?我能否只部署字节码?
理想的解决方案不会危及我的知识产权(源代码),不需要直接安装 Python(尽管我肯定需要一些嵌入式解释器),并且是跨平台的(Windows、Mac 和 Linux)。有人知道这个领域的任何工具或资源吗?
谢谢。
我已经开始制作一个运行在桌面上的个人 Python 应用程序,使用 wxPython 作为 GUI 工具包。如果有需求,我可能会考虑商业化。
我没有部署“真实”Python应用程序的知识,尽管我以前曾经使用过 py2exe
,但效果不一。我该如何混淆代码?我能否只部署字节码?
理想的解决方案不会危及我的知识产权(源代码),不需要直接安装 Python(尽管我肯定需要一些嵌入式解释器),并且是跨平台的(Windows、Mac 和 Linux)。有人知道这个领域的任何工具或资源吗?
谢谢。
您可以分发编译后的Python字节码(.pyc文件),而不是源代码。在Python(或任何其他语言)中,无法防止反编译。您可以使用pyobfuscate之类的混淆器,使竞争对手更难解密您的反编译源代码。
正如Alex Martelli在这个帖子中所说,如果要保守您的代码机密,您不应该在其他人的计算机上运行代码。
我记得上次使用cx_Freeze时,它创建了一个DLL文件用于Windows,从而消除了对本地Python安装的需要。这至少值得一试。
哇,这里有很多问题:
可以直接从Python解释器中运行字节码(.pyc)文件,但我没有看到任何可用的字节码混淆工具。
我不知道是否有“一站式”部署解决方案,但是:
对于Windows,您可以使用NSIS (http://nsis.sourceforge.net/Main_Page)。问题在于,尽管OSX / * nix带有python,但Windows则没有。如果您不想使用py2exe构建二进制文件,我不确定分发Python运行时环境(更不用说技术问题了)周围的许可问题会是什么。
您可以使用“bundle”格式打包OS X分发版,而*NIX有自己的安装软件约定--通常是“make install”脚本。
希望这对您有所帮助。
尝试使用scraZ混淆器(http://scraZ.me)。 这是针对字节码的混淆器,而不是源代码。 免费版本具有良好但不完美的混淆方法。 PRO版本为字节码提供非常强大的保护。 (在字节码混淆后,反编译是不可能的)