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 代码加密示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: Cython编译python为so 代码加密示例

本文地址: http://www.cppcns.com/jiaoben/python/294813.html

cython编译python_Cython编译python为so 代码加密示例相关推荐

  1. Cython编译python为so 代码加密

    1. 编译出来的so比网上流传的其他方法小很多. 2. language_level  是python的主版本号,如果python版本是2.x,目前的版本Cython需要人工指定language_le ...

  2. python加密反编译_对Python源码进行加密及反编译前后对比

    关于python的加密 目前软件开发商对 Python 加密时可能会有两种形式,一种是对python转成的exe进行 保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程. ...

  3. python 代码加密

    Python代码加密步骤 1.准备文件 main.py为要加密的主脚本 import sys from PyQt5.QtWidgets import QApplication, QWidgetdef ...

  4. Python 2.7 cython cythonize py 编译成 pyd 谈谈那些坑(转载)

    转自:https://www.cnblogs.com/ibingshan/p/10334471.html Python 2.7 cython cythonize py 编译成 pyd 谈谈那些坑 前言 ...

  5. Cython入门:将python代码转为cython

    前言 本节不具体讲解cython的原理和细节,提供一个最简单的例子,将一个python代码转化为一个cython代码,同时由于本人对cython刚入门,只会一个简单的操作,即在cython中声明变量的 ...

  6. python 函数定义 编译_Cython编译的模块不允许访问函数定义的“module”而不是callab...

    我对Cython还不熟悉,我试着把Black(没有股票分红的Black Scholes)从Python转换成Cython.在编译之后,它不允许我实际使用这个函数.我相信经验丰富的人可以很容易地看到这一 ...

  7. 在线python编程编译器-在线编译或编辑Python的5个最佳工具

    离线Python编辑器和编译器都具有许多功能,但是在线编译器通常在功能上受到限制,并试图满足特定需求而不是满足所有需求,其中在线编译大多数是免费的,所以也受到开发者的热爱. 在本文中,我们将浏览各种狂 ...

  8. python源代码不需要编译成什么-python需要编译么

    一个经常听见的问题,那就是:Python是解释型的语言吗?它会被编译吗?这个问题没有想象中那么好回答.和很多人认识世界一样,习惯以一个简单的模型去评判一些事物.而事实上,里面包含了很多很多的细节. 通 ...

  9. python在线编译-在线编译python

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 尝试通过源码自己编译 python,使用的系统是 ubuntu14.04 ...

最新文章

  1. 解决firefox ubuntu无法打开页面的问题
  2. 带你了解“比特币黄金”和SegWit2x分叉
  3. SDK 和 API 的区别是什么
  4. C++对象的内存分析(5)
  5. CList添加出错AddTail();rror C2664: 'struct __POSITION *__thiscall CList错误
  6. Log4Net ,.net和SQL Server的完美结合
  7. Chrome开发者工具Network标签页中观察到的set-cookie jsessionid是什么东西
  8. 千元满血续航王!iQOO Z5发布 售价1799元起
  9. 深入理解HashMap+ConcurrrentHashMap扩容的原理
  10. 各种数字显示屏接口:LVDS, DVI, HDMI, DisplayPort, DSI
  11. Hive中类SQL语言中的where 与having
  12. 开课吧:Dubbo的整体架构设计有哪些分层?
  13. oracle sql 导入mysql数据库备份_使用PL/SQL连接oracle数据库,并将数据进行导出备份和导入恢复...
  14. 性能测试--jmeter中的用户自定义变量【13】
  15. 使用salt-ssh批量管理主机
  16. swagger导出excel文档_excel导入导出api
  17. linux wps怎么改成中文字体,WPS文字的 字体设置功能
  18. 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛 B - 大还是小? 字符串水题...
  19. 钉钉邮箱登录入口_钉邮的使用攻略①
  20. 如何提交form表单嵌套(提交表单外的数据方法 )

热门文章

  1. 百度apistore第三方登陆使用说明
  2. 树莓派声音输出设置_Raspberry Pi(树莓派)声音输出的设置
  3. windows 实时自动同步两个文件夹
  4. 关于RPN中proposal的坐标回归参数的一点理解及Faster R-CNN的学习资料
  5. 视频画中画效果制作,原来这么简单就可以做出
  6. 计算机ram结构,2017年全国计算机考试四级复习纲要:RAM的结构、组织及其应用...
  7. 使用tk.mapper和pagehelper一个bug记录:没有为 'PAGE_TABLE_ALIAS' 的列 4 指定任何列名称
  8. 如何登陆FTP服务器下载文件
  9. 刷了 1000 多道算法题,一点小小的心得!
  10. 广安职业技术学院计算机在那个校区,广安职业技术学院有几个校区哪个更好