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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
python使用socket进行简单网络连接的方法
Apr 29 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
Python 结巴分词实现关键词抽取分析
Oct 21 Python
浅谈Django学习migrate和makemigrations的差别
Jan 18 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
May 10 Python
pandas通过loc生成新的列方法
Nov 28 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
详解python读取和输出到txt
Mar 29 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 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安全性漫谈
2012/06/28 PHP
在PHP中使用redis
2013/11/04 PHP
PHP 验证登陆类分享
2015/03/13 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
微信小程序url与token设置详解
2017/09/26 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
Node爬取大批量文件的方法示例
2019/06/28 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
会展策划与管理专业求职信
2014/06/09 职场文书
党小组推荐意见
2015/06/02 职场文书
工资证明范本
2015/06/12 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
2019银行竞聘书
2019/06/21 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android