Cython编译python为so 代码加密示例


Posted in Python onDecember 23, 2019

1. 编译出来的so比网上流传的其他方法小很多。

2. language_level  是python的主版本号,如果python版本是2.x,目前的版本Cython需要人工指定language_level.

3. python setup.py build_ext --inplace  执行脚本

4. 以下是代码片段

from distutils.core import Extension, setup
 
from Cython.Build import cythonize
from Cython.Compiler import Options
 
 
# __file__ 含有魔术变量的应当排除,Cython虽有个编译参数,但只能设置静态。
exclude_so = ['__init__.py', "mixins.py"]
sources = ['core', 'libs']
 
 
extensions = []
for source in sources:
  for dirpath, foldernames, filenames in os.walk(source):
    for filename in filter(lambda x: re.match(r'.*[.]py$', x), filenames):
      file_path = os.path.join(dirpath, filename)
      if filename not in exclude_so:
        extensions.append(
            Extension(file_path[:-3].replace('/', '.'), [file_path], extra_compile_args = ["-Os", "-g0"],
                 extra_link_args = ["-Wl,--strip-all"]))
 
 
Options.docstrings = False
compiler_directives = {'optimize.unpack_method_calls': False}
setup( 
    # cythonize的exclude全路径匹配,不灵活,不如在上一步排除。
    ext_modules = cythonize(extensions, exclude = None, nthreads = 20, quiet = True, build_dir = './build',
                language_level = 2 或者3 , compiler_directives = compiler_directives))

以上这篇Cython编译python为so 代码加密示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Jul 18 Python
Python 绘图和可视化详细介绍
Feb 11 Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 Python
在Python中给Nan值更改为0的方法
Oct 30 Python
python实现文本界面网络聊天室
Dec 12 Python
python变量命名的7条建议
Jul 04 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 Python
Django Auth用户认证组件实现代码
Oct 13 Python
python 三种方法提取pdf中的图片
Feb 07 Python
详解Python描述符的工作原理
Jun 11 Python
Python编译为二进制so可执行文件实例
Dec 23 #Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 #Python
python 实现屏幕录制示例
Dec 23 #Python
关于ZeroMQ 三种模式python3实现方式
Dec 23 #Python
Python 内置函数globals()和locals()对比详解
Dec 23 #Python
Python 项目转化为so文件实例
Dec 23 #Python
python 解决cv2绘制中文乱码问题
Dec 23 #Python
You might like
最省空间的计数器
2006/10/09 PHP
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php导入模块文件分享
2015/03/17 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
php依赖注入知识点详解
2019/09/23 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
jQuery通过ajax快速批量提交表单数据
2016/10/25 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
2018/09/21 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
Python素数检测实例分析
2015/06/15 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
Python字符编码判断方法分析
2016/07/01 Python
python构建深度神经网络(DNN)
2018/03/10 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
社区戒毒工作方案
2014/06/04 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
2014年销售员工作总结
2014/12/01 职场文书
人事聘任通知
2015/04/21 职场文书
介绍信范文大全
2015/05/07 职场文书
夫妻吵架保证书
2015/05/08 职场文书
卡特教练观后感
2015/06/08 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
Python装饰器详细介绍
2022/03/25 Python