【分享】【翻译】Cython开发指南

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【分享】【翻译】Cython开发指南

本文是继上文而来:

【整理】从stack overflow的一个问题引发的思考(C++封装为Python可用接口)

最近开发中有个需求需要把一套C++的API封装为Python可用的库,所以,就开始了C++封装Python的方法探索。

最早我是通过SWIG进行封装的,无奈失败告终,耗费了2个礼拜的时间折腾踩坑,发现SWIG对C++封装Python代码中,对于线程的控制非常差劲,对GIL的获取,SWIG官方并没有提供很好的解决办法,遂SWIG方案卒。

再后来就发现了C++封装Python,其实可以通过官方的Python C API进行封装,然后编译出 DLL/pyd 文件即可供Python调用,但是此法略有难度,需要对很多细节进行控制,代码量也很大。

不过相比较Python C API,那么Cython就简单许多,而且Cython对 Python 的GIL有专门的控制,非常适合对C/C++的线程类进行封装。那么,在查看了官方文档的介绍之后,最后综合考虑就采取了Cython的方案。

当然还有优秀的Boost.Python封装,无奈Boost可能复杂程度更高,遂放弃。

Cython-logo.svg

那么根据Cython的官方文档学习,我把官方的Cython文档用户指南采用Google 翻译API进行翻译,加入个人的部分修改,适合英文基础差的学习Cython入门参考。

下面是Cython用户指南相关的文章:

【翻译】Cython教程1_Cython语言基础

【翻译】Cython教程2_Cython语法扩展

【翻译】Cython教程3_Cython特殊语法扩展

【翻译】Cython教程4_Cython模块之间的共享

【翻译】Cython教程5_Cython与外部C代码交互

【翻译】Cython教程6_Cython如何进行编译

【翻译】Cython教程7_Cython加速之早期绑定机制(early binding)

【翻译】Cython教程8_Cython中使用C++

=========================================

对于还需要作参考的文章,我也整理如下:

Cython官方文档

Cython基础--Cython入门

Cython基础--Cython的类型

Cython基础--Cython的函数

Cython基础--C结构体,枚举,以及常量在Cython中的定义和使用

Cython基础--Cython的语句和表达式

Cython基础--Cython的类

Cython进阶--用Cython封装Callback函数

Cython进阶--用Cython封装Callback函数(续)

Cython的学习方法

额外推荐一本PDF教程《Cython A Guide for Python Programmers》下载:
OReilly.Cython A Guide for Python Programmers

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【分享】【翻译】Cython开发指南

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: