Python代码可以像Javascript一样压缩吗?



我想知道Python代码是否可以像Javascript一样被压缩/非人类可读。我知道缩进在 Python 中很重要,它的核心理念是可读性,但是有没有一种允许压缩 Python 代码的方法?顺便说一下,Python 2.7。

您可以在此处采用几种不同的方法。

Python确实以;的形式提供了缩小的机会。python中一个鲜为人知且很少使用(谢天谢地)的语法元素是,如果使用;,可以在一行上编写多个表达式。

例如:

 if x > y:
     x += y
     print y
 else:
     y += x
     print x

可以压缩为:

 if x>y:x+=y;print y;
 else:y+=x;print x;

有很多这样的例子,你也可以删除注释,并使用三元运算符进一步混淆简单的代码。;去除了大量的空白,但可以进行许多较小的优化。

有关为您执行此操作的库的一些示例,请参阅此处、此处或此处。

请记住,这些都不会完全混淆您的代码,以至于无法恢复。任何有足够积极性的人都可以从中对你的源代码进行逆向工程,即使没有记录。

即使您只分发.pyo.pyc文件,也是如此。Python 字节码通常不比用于生成它的源代码小多少,并且在大多数情况下可以很容易地进行逆向工程。不要错误地认为分发.pyc将完全保护您的源代码。

编辑:如果您希望将这些打包为独立的二进制可执行文件,您可能需要查看cx_Freeze。它可能更接近您正在寻找的内容,并且即使不是不可能,也更难进行逆向工程。

http://doughellmann.com/2009/01/pymotw-compileall.html删除然后源.py文件

不像JavaScript通常由浏览器执行,我们必须提供原始的javascript源代码。

您不必发布 python 代码,您可以交付编译的二进制文件。有许多工具可以完成这项工作,例如py2exe,Pyinstaller cx_Freeze。客户也从中受益,因为他们不需要安装Python,甚至不需要对Python一无所知。

虽然编译后的Python代码比java,c,c ++代码更容易反编译,但比压缩源代码更好。

最新更新