如何保护Python源代码?

Nat*_*man 10 c python bytecode compilation

是否可以仅分发Python脚本的字节码版本(.pyc文件)而不是原始的.py文件?我的应用程序嵌入了Python解释器并调用PyImport_Import来加载脚本.我怎么能告诉它寻找.pyc文件并导入它?

Mic*_*kan 13

使用冻结工具,它包含在Python源代码树中作为Tools/freeze.它将Python字节代码转换为C数组; 使用C编译器,您可以将所有模块嵌入到新程序中,然后将其与标准Python模块链接.

请注意,freeze需要C编译器.

其他工具:

1- PyInstaller

2- Py2Exe

3- 挤压

4- cx_freeze

关于effbot.org的更多信息


Mic*_*las 5

我是通过创建.py库和使用该库的简单.py程序来实现的.然后我将库编译为.pyc并分发:程序为.py源代码和库编译.pyc.


Ned*_*der 5

由于您使用C++编写主程序,因此可以执行任何保护Python文件的操作.例如,您可以加密它们以进行分发,然后及时解密它们以将它们导入Python解释器.

由于您使用的是PyImport_Import,您可以编写自己的__import__钩子来导入模块,而不是从文件中导入模块,而是从内存缓冲区导入模块,因此转换为.pyc文件可以在内存中进行,而在磁盘上根本没有可理解的Python代码.