编译python并分发二进制文件!
明智的想法:
使用Cython, 努特卡, 脱落皮肤或者类似于将python编译成C代码,然后将应用程序作为python二进制库(PYD)分发。
这样,就不会留下Python(字节)代码,我认为,您已经从普通代码中得到了任何人(即雇主)所期望的任何合理程度的模糊化。(.NET或Java比这种情况更不安全,因为字节码没有混淆,可以相对容易地分解为合理的源)。
Cython与CPython的兼容性越来越强,所以我认为它应该能工作。(我实际上在考虑这个作为我们的产品.。我们已经在构建一些第三方库,如PYD/dll,所以将我们自己的python代码作为二进制文件发布对我们来说并不是太大的一步。)
看见这篇博文(不是我写的)关于如何做这件事的教程。(THX@hithwen)
疯狂的想法:
您可能会让Cython为每个模块分别存储C文件,然后将它们全部连接起来,并使用大量内联构建它们。这样,您的Python模块就相当单一,很难用普通的工具进行芯片处理。
超越疯狂:
如果您可以静态地链接到python运行时和所有库(Dll)并进行优化,您可能能够构建单个可执行文件。这样,就很难拦截对python和您使用的任何框架库的调用。但是,如果使用LGPL代码,则无法做到这一点。