linux:python:python源码保护
这是本文档旧的修订版!
python源码保护
1. 使用Cython
1.1 思路
虽说 Cython 的主要目的是带来性能的提升,但是基于它的原理:将 .py/.pyx 编译为 .c 文件,再将 .c 文件编译为 .so(Unix) 或 .pyd(Windows),其带来的另一个好处就是难以破解。
1.2 方法
使用 Cython 进行开发的步骤也不复杂。
1)编写文件 hello.pyx 或 hello.py:
def hello(): print('hello')
2)编写 setup.py:
from distutils.core import setup from Cython.Build import cythonize setup(name='Hello World app', ext_modules=cythonize('hello.pyx'))
3)编译为 .c,再进一步编译为 .so 或 .pyd:
python setup.py build_ext --inplace
执行 python -c “from hello import hello;hello()” 即可直接引用生成的二进制文件中的 hello() 函数。
1.3 优点
生成的二进制 .so 或 .pyd 文件难以破解
同时带来了性能提升
1.4 缺点
兼容性稍差,对于不同版本的操作系统,可能需要重新编译
虽然支持大多数 Python 代码,但如果一旦发现部分代码不支持,完善成本较高
linux/python/python源码保护.1600222777.txt.gz · 最后更改: 2023/03/17 10:12 (外部编辑)