一、与Python不同的是,Cython代码需要进行编译。发生两个阶段

  1. 将一个.pyx文件用Cython编译成一个.c文件中,包括Python扩展模块代码
  2. 将.c文件使用C编译器编译成.so文件(在windows上是.pyd文件),这个文件可以在Python中直接import使用

二、构建Cython代码的方法

  1. 写一个distutils/setuptools setup.py(推荐)
  2. 像使用.py文件一样。使用Pyximport,导入Cython .pyx文件(使用distutils在后台编译和构建)。
  3. 运行 cython 命令行工具通过.pyx文件生成.c文件,然后手动将.c文件编译为适合python导入的共享库或dll
  4. 使用Jupyter或Sage,这两个都可以内联Cython代码。

三、使用distutils构建Cython模块

首先编写python脚本(hello.pyx)

def sayHi(name):
print('Hi,%s!'%name)

然后编写setup.py脚本

from distutils.core import setup
from Cython.Build import cythonize setup(name='Hello world app',
ext_modules=cythonize('hello.pyx'))

最后在所在目录中运行命令

python setup.py build_ext --inplace

接下来的使用就和python库一样

3.如何构建Cython代码的更多相关文章

  1. jenkins如何构建C#代码写的网站

    纯粹是因为同事习惯了写C#代码,开发的网站用C#编译, 对于习惯了用Maven编译的测试人员,真是一头雾水.不用jenkins吧,效率特别低,每次收到开发发过来的版本,还要进行数据库相关配置,是非常累 ...

  2. 编译Cython代码时遇到的问题: fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'

    使用python setup.py build_ext --inplace命令编译cython代码, 出现以下错误: Compiling cython_example.pyx because it c ...

  3. jenkins+docker+git+harbor构建及代码回滚(未完)

    目录 一.部署 环境工作流程介绍 部署harbor 一.部署 前提环境说明 192.168.111.3 该机器为git本地仓库,及git远程仓库(git用户创建),及Harbor镜像仓库 192.16 ...

  4. 03 . Jenkins构建之代码扫描

    Sonar简介 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等)不 ...

  5. tensorflow实战系列(四)基于TensorFlow构建AlexNet代码解析

    整体流程介绍: 我们从main函数走,在train函数中,首先new了一个network;然后初始化后开始训练,训练时设定设备和迭代的次数,训练完后关闭流程图. 下面看network这个类,这个类有许 ...

  6. 十六.maven自动化构建protobuf代码依赖

    protobuf在序列化和反序列化中的优势: 1):序列化后体积相比Json和XML很小,适合网络传输2):支持跨平台多语言3):消息格式升级和兼容性还不错4):序列化反序列化速度很快,快于Json的 ...

  7. cython教程

    .写测试代码: zhouhh@zhouhh-home:~$ vi test.pyx [python] view plaincopy def sayhello(char* str): if str == ...

  8. Cython 一篇通

    Cython的类型 1 类型定义 1.1 定义一个C变量: 1.1.1 在Cython里定义一个C变量和C语言类似,不同的地方就是在声明的最前面要加上cdef,另外,末尾不用加分号";“如: ...

  9. 布客·ApacheCN 翻译/校对/笔记整理活动进度公告 2020.1

    注意 请贡献者查看参与方式,然后直接在 ISSUE 中认领. 翻译/校对三个文档就可以申请当负责人,我们会把你拉进合伙人群.翻译/校对五个文档的贡献者,可以申请实习证明. 请私聊片刻(52981514 ...

随机推荐

  1. 【hiho一下 第九周】 状态压缩·二

    [题目链接]:http://hihocoder.com/problemset/problem/1048 [题意] [题解] 按从左到右然后从上到下的顺序; 依次枚举每个格子是竖条还是横条; 然后在搜索 ...

  2. Git学习总结(4)——我的Git忽略文件

    *.bak *.txt *.vm .gitignore #svn .svn/ # built application files *.apk *.ap_ # files for the dex VM ...

  3. idea安装Jerebel 与使用

    在File->setting->plugins->下选择Browse repositories下搜索JRebel Plugin 下载,下载完成之后重启idea. 重启完成后,可见在工 ...

  4. 继续过Hard题目.0209

    http://www.cnblogs.com/charlesblc/p/6372971.html 继续过Hard模式的题目吧.   # Title Editorial Acceptance Diffi ...

  5. POJ--1087--A Plug for UNIX【Dinic】网络最大流

    链接:http://poj.org/problem? id=1087 题意:提供n种插座.每种插座仅仅有一个,有m个设备须要使用插座,告诉你设备名称以及使用的插座类型,有k种转换器.能够把某种插座类型 ...

  6. Hbase集群扩展

    当hbase集群节点不够用时,我们须要新增节点来对集群进行扩展.hbase集群的扩展是非常easy的,过程例如以下: 一.准备一台新机器作为扩展节点,这里是作为slaves15,该机子要先与maste ...

  7. File and Folder Permissions

    https://msdn.microsoft.com/en-us/library/bb727008.aspx On NTFS volumes, you can set security permiss ...

  8. Swift3.0 闭包整理

    语法表达式 一般形式:{             (parameters) -> returnType in              statements            } 这里的参数 ...

  9. 智课雅思词汇---十三、前缀ab-是什么意思

    智课雅思词汇---十三.前缀ab-是什么意思 一.总结 一句话总结:分离,脱离;相反;加强意义 前缀:ab- [词根含义]:分离,脱离;相反;加强意义 [词根来源]:来源于拉丁语前缀ab-. [同源单 ...

  10. java中字符串编码转换

    Java 正确的做字符串编码转换 字符串的内部表示? 字符串在java中统一用unicode表示( 即utf-16 LE) , 对于 String s = "你好哦!"; 如果源码 ...