官术网_书友最值得收藏!

Chapter 1. Cython Won't Bite

Cython is much more than a programming language. Its origin can be traced to SAGE, the mathematics software package, where it is used to increase the performance of mathematical computations such as those involving matrices. More generally, I tend to consider Cython as an alternative to SWIG to generate really good Python bindings to native code.

Language bindings have been around for years, and SWIG was one of the first and best tools to generate bindings for multitudes of languages. Cython generates bindings for Python code only, and this single purpose approach means it generates the best Python bindings you can get outside of doing it all manually, which should be attempted only if you're a Python core developer.

For me, taking control of legacy software by generating language bindings is a great way to reuse any software package. Consider a legacy application written in C/C++. Adding advanced modern features such as a web server for a dashboard or message bus is not a trivial thing to do. More importantly, Python comes with thousands of packages that have been developed, tested, and used by people for a long time that can do exactly that. Wouldn't it be great to take advantage of all of this code? With Cython, we can do exactly this, and I will demonstrate approaches with plenty of example codes along the way.

This first chapter will be dedicated to the core concepts on using Cython, including compilation, and should provide a solid reference and introduction for all the Cython core concepts.

In this first chapter, we will cover:

  • Installing Cython
  • Getting started - Hello World
  • Using distutils with Cython
  • Calling C functions from Python
  • Type conversion
主站蜘蛛池模板: 兴业县| 安西县| 玛曲县| 弥渡县| 吴川市| 高邑县| 精河县| 宜春市| 鸡泽县| 舟山市| 江北区| 长岛县| 边坝县| 长阳| 湖口县| 麻栗坡县| 嘉荫县| 邵阳县| 凭祥市| 黄龙县| 区。| 红桥区| 长岛县| 新乡县| 宁都县| 延庆县| 布尔津县| 疏勒县| 喀什市| 阿瓦提县| 民和| 墨玉县| 谢通门县| 河北区| 玛多县| 海南省| 阳谷县| 樟树市| 澳门| 沐川县| 青田县|