Cython是一种编程语言,它使Python语言的C扩展像Python本身一样简单。它旨在成为Python语言的超集,为其提供高级,面向对象,功能和动态编程。它的主要功能是支持可选的静态类型声明作为语言的一部分。源代码被转换为优化的C / C ++代码并编译为Python扩展模块。这允许非常快速的程序执行和与外部C库的紧密集成,同时保持Python语言众所周知的高程序员生产力。

主要的Python执行环境通常称为CPython,因为它是用C编写的。其他主要实现使用Java(Jython),C#(IronPython)和Python本身(PyPy)。用C语言编写,CPython有助于包装许多通过C语言接口的外部库。然而,在C中编写必要的粘合代码仍然是微不足道的,特别是对于像Python这样的高级语言更流利的程序员而不是像C这样的接近金属的语言。

Cython项目最初基于着名的Pyrex,通过源代码编译器将Python代码转换为等效的C代码来解决这个问题。此代码在CPython运行时环境中执行,但是以编译的C的速度执行,并且能够直接调用C库。同时,它保留了Python源代码的原始接口,这使得它可以直接从Python代码中使用。这些双重特性使Cython的两个主要用例成为可能:使用快速二进制模块扩展CPython解释器,以及将Python代码与外部C库连接

虽然Cython可以编译(大多数)常规Python代码,但生成的C代码通常可以从Python和C类型的可选静态类型声明中获得主要(有时令人印象深刻)的速度提升。这些允许Cython将C语义分配给代码的一部分,并将它们转换为非常有效的C代码。因此,类型声明可用于两个目的:将代码段从动态Python语义转换为静态和快速C语义,还用于直接操作外部库中定义的类型。因此,Cython将这两个世界合并为一种非常广泛适用的编程语言。

转载于:https://www.cnblogs.com/walthwang/p/10422647.html

1.什么是Cython相关推荐

  1. 编译ceph源码:cython module not found问题的解决

    环境:centos7.5 ceph版本:12.2.1 在当前环境对ceph源码rpm包进行重新编译 执行命令rpmbuild --rebuild ceph-12.2.1-0.el7.src.rpm 最 ...

  2. cython安装、使用

    cython安装.使用 原创 2012年09月27日 17:25:11 8436 0 0 一.cython 在linux(ubuntu)下安装 sudo apt-get install cython ...

  3. python如何调用c++numpy.ndarray代码_python – 在cython中使用numpy:定义ndarray数据类型/ ndims...

    我正在尝试编写一些cython代码来进行numpy数组的计算. Cython似乎不喜欢我见过的所有示例中使用的[]来定义数据类型和维数. 例如,我有一个文件test.pyx: cimport nump ...

  4. python转cython_用Cython加速Python到“起飞”(推荐)

    事先声明,标题没有把"Python"错打成"Cython",因为要讲的就是名为"Cython"的东西. Cython是让Python脚本支持 ...

  5. Windows 编译cython nms

    https://github.com/pjl1995/CTracker/blob/master/model.py 调用: from lib.cython_nms.cpu_nms import soft ...

  6. Cython fatal error C1083: 无法打开包括文件: “numpy/arrayobject.h”: No such file or directory

    python setup.py build_ext --inplace编译时报错如下: 解决方法: 添加 include_dirs=[np.get_include()] 添加后的setup.py如下: ...

  7. pyx文件 生成pyd 文件用于 cython调用

    参考: http://www.2cto.com/kf/201405/304168.html 参考: http://blog.csdn.net/darren2015zdc/article/details ...

  8. Cython的简单使用

    from:http://www.cnblogs.com/freeweb/p/6548208.html 补充:在我mac上的加速效果: 最初: runing1 time: 0.233466 s runi ...

  9. 使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用

    文章目录: 1 准备环境 2 调用`Cython库包`把python的`.py`文件生成`.so`文件 2.1 写源码文件 2.2 调用源码接口 2.3 调用Cython库把`.py`源码生成`.so ...

  10. 调用Cython时报错: More than one filename match found for utility code Capsule

    近来终于熬完期末考试,于是抽空继续专研CS231n,在做CS231n的assignment 2时,做到fast_layer编译这一块,本以为不需要动脑子写代码,终于可以休息一会儿了,可谁知道我按着步骤 ...

最新文章

  1. 到成都去是联想的必然选择
  2. SetConsoleCtrlHandler 处理控制台消息
  3. RabbitMQ (十五) 镜像集群 + HAProxy1.7.8 负载均衡
  4. OpenGL与CUDA互操作方式总结
  5. 一张图片学Python
  6. Android 的源代码结构
  7. python续行_python中如何优雅续行和换行
  8. Angular自学笔记(一)ngModule 元数据
  9. BGP聚合as-set advertise-map
  10. GAN生成对抗网络基本概念及基于mnist数据集的代码实现
  11. java layoutmanager_Java Swing 探索(一)LayoutManager
  12. 注意!最新.Net Framework与Exchange 的兼容性问题
  13. linux系统中make install 时指定安装路径
  14. 可视化技巧:显示带colorbar的热图(matplotlib)
  15. day14ARP协议、路由原理、ARP实验、ARP防御、2003虚拟机如何关闭定时锁屏
  16. 计算机优化英语课堂教学,多媒体课件优化英语课堂的反思性研究
  17. 数学分析高等代数考研试题荟萃[更新至2017年12月15日]
  18. 【小技巧】周杰伦没有离开网易云音乐
  19. Qt编写可视化大屏电子看板系统3-新建布局
  20. anaconda的python目录在哪里_python – Anaconda安装到主目录

热门文章

  1. 点击按钮复制链接(实现点击按钮,复制文本框中的的内容)
  2. Android:辅助功能(模拟点击,模拟手势)入门基本学习
  3. 手机长度px值_html长度尺寸单位px像素
  4. SecureCRT教程——如何使用SecureCRT命令窗口将命令发送到多个会话
  5. 【论文学习】《Generalized End-to-End Loss for Speaker Verification》
  6. php fpm 开启status,启用php-fpm状态详解
  7. 北航计算机刘强,刘强 LIU Qiang
  8. centOS8安装vmtools
  9. 会声会影编辑html,会声会影视频声音编辑
  10. 成为一名合格的软件测试工程师,需要具备哪些技能?