前情提要
之前由于项目的需要,需要我们将一部分“关键代码”隐藏起来。
虽然Python 先天支持 将源代码 编译后 生抽 .pyc文件,但是破解起来相当容易。
于是搜罗了另外一种方法,将关键的库转换成 .so ,从而将其保护起来。
使用 Cython 保护代码 (Ubuntu16.04 - LTS)
① 准备工作
1. 安装 cython
pip install cython
2. 安装 python-dev
sudo apt-get install python-dev
3. 安装gcc
sudo apt-get install gcc
② 新建setup.py,内容如下
from distutils.core import setup from Cython.Build import cythonize setup(ext_modules = cythonize(["Train_predict.py"]))
③ 运行脚本 (注: 需要在Python 文件的同目录下运行)
python setup.py build_ext
④ 运行脚本后,在当前目录会生成一个 /build 子目录
打开后,可以看到 .so 文件已经生成:
将 .so 文件拷贝到原来 .py 文件的目录后,删除 .py文件后,测试: 在没有修改任何调用程序源码的情况下,在pythoncharm中已经无法找到 “Train_predict.py” 中函数的定义,但是却可以正常的调用这个函数。
OK, 我们已经成功地将“关键代码” 隐藏起来; 任务完成!!
最后,感谢大家的观看,欢迎留言讨论哦 :)
参考:
http://fengzheng369.blog.163.com/blog/static/7522097920161253407914
http://www.cnblogs.com/ke10/p/py2so.html