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对Excel进行读写操作
Mar 30 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
儿童编程python入门
May 08 Python
python sys.argv[]用法实例详解
May 25 Python
Tensorflow 查看变量的值方法
Jun 14 Python
在python中pandas读文件,有中文字符的方法
Dec 12 Python
Django获取该数据的上一条和下一条方法
Aug 12 Python
np.random.seed() 的使用详解
Jan 14 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
Eclipse配置python默认头过程图解
Apr 26 Python
解决python图像处理图像赋值后变为白色的问题
Jun 04 Python
Django执行源生mysql语句实现过程解析
Nov 12 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
PHP新手上路(十)
2006/10/09 PHP
一步一步学习PHP(8) php 数组
2010/03/05 PHP
详解YII关联查询
2016/01/10 PHP
Laravel 5.3 学习笔记之 错误&日志
2016/08/28 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
php实现微信支付之退款功能
2018/05/30 PHP
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
举例详解Python中循环语句的嵌套使用
2015/05/14 Python
python Django批量导入数据
2016/03/25 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
通过PYTHON来实现图像分割详解
2019/06/26 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
Python 占位符的使用方法详解
2019/07/10 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
北京SQL新华信咨询
2016/09/30 面试题
职业教育毕业生求职信
2013/11/09 职场文书
计算机网络专业推荐信
2013/11/24 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
户籍证明格式
2014/09/15 职场文书
django 认证类配置实现
2021/11/11 Python