跳至内容
wiki
用户工具
登录
站点工具
搜索
工具
显示页面
修订记录
导出 PDF
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您在这里:
start
»
linux
»
python
»
python源码保护
您的足迹:
•
ftdi
linux:python:python源码保护
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== python源码保护 ====== 转自原文:https://www.cnblogs.com/dhcn/p/11077447.html ===== - 使用Cython -- 以下内容经过本人测试OK ===== ==== - 思路 ==== 虽说 Cython 的主要目的是带来性能的提升,但是基于它的原理:将 .py/.pyx 编译为 .c 文件,再将 .c 文件编译为 .so(Unix) 或 .pyd(Windows),其带来的另一个好处就是难以破解。 ==== - 方法 ==== 使用 Cython 进行开发的步骤也不复杂。 1)编写文件 hello.pyx 或 hello.py: <code> def hello(): print('hello') </code> 2)编写 setup.py: <code> from distutils.core import setup from Cython.Build import cythonize setup(name='Hello World app', ext_modules=cythonize('hello.pyx')) </code> 3)编译为 .c,再进一步编译为 .so 或 .pyd: <color #ed1c24>#此处生成出来的so文件不用改名</color> ''python setup.py build_ext --inplace'' 执行 python -c "from hello import hello;hello()" 即可直接引用生成的二进制文件中的 hello() 函数。 ==== - 优点 ==== 生成的二进制 .so 或 .pyd 文件难以破解 同时带来了性能提升 另外一方面的好处,其实还可以帮检查语法,而且语法检查强度看起来比python强一点,比如可以检测到变量没有赋值就使用,或者使用了python的关键字作为变量名或def function名等。 ==== - 缺点 ==== 兼容性稍差,对于不同版本的操作系统,可能需要重新编译 虽然支持大多数 Python 代码,但如果一旦发现部分代码不支持,完善成本较高
linux/python/python源码保护.txt
· 最后更改: 2023/03/17 10:12 由
127.0.0.1
页面工具
显示页面
修订记录
反向链接
导出 PDF
回到顶部