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中的循环语句的用法
Apr 09 Python
基于Python如何使用AIML搭建聊天机器人
Jan 27 Python
Python中对象的引用与复制代码示例
Dec 04 Python
Python面向对象class类属性及子类用法分析
Feb 02 Python
用python处理图片实现图像中的像素访问
May 04 Python
python组合无重复三位数的实例
Nov 13 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
python实现批量视频分帧、保存视频帧
May 31 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 Python
python 生成任意形状的凸包图代码
Apr 16 Python
基于selenium及python实现下拉选项定位select
Jul 22 Python
python运算符之与用户交互
Apr 13 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
php图片的裁剪与缩放生成符合需求的缩略图
2013/01/11 PHP
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
解决Python字典写入文件出行首行有空格的问题
2017/09/27 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
python类共享变量操作
2020/09/03 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
德国综合购物网站:OTTO
2018/11/13 全球购物
勾股定理课后反思
2014/04/26 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS
Go归并排序算法的实现方法
2022/04/06 Golang