1. 安装 python 和 python-devel(没有后者,install 的时候会报错 "Scanners.c:21:20: fatal error: Python.h: No such file or directory")

2. 从 https://pypi.python.org/pypi/Cython/ 下载 Cython-0.29.26.tar.gz

3. 安装 Cython

tar -xvzf Cython-0.29.26.tar.gz
cd Cython-0.29.26.tar.gz
python setup.py install

4. 编写 pyx 脚本

mkdir hello_pack && cd hello_pack

创建 hello.pyx 脚本,定义所需的函数

#coding=utf-8
def print_hello(name):
print "Hello %s!" % name

5. 编写 setup.py 编译脚本

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

6. 编译组件

python setup.py build

7. 执行完之后,会生成当前目录下 ./build/lib.linux-x86_64-2.7/hello.so

8. 编写调用脚本 hello.py,放在 hello.so 所在目录

#!/usr/bin/python
# coding=utf-8
import hello
hello.print_hello("cython")

9. 执行 hello.py,输出

Hello cython!

PS: 使用 Cython 的目的一是提升执行效率,另外一个就是实现对 *.py 代码的保护,毕竟反编译 .so 总要麻烦一些吧

参考文档:

Cython的简单使用

fatal error: Python.h: No such file or directory解决办法

centos 7 安装 python-dev包提示No package python-dev available

CentOS 7 下通过 Cython 编写 python 扩展的更多相关文章

  1. 我在 Ubuntu 下使用 Sublime 编写 python 代码时遇到并解决的问题

    Ubuntu 下 Sublime 无法输入中文 解决方法如下: sudo apt-get update && sudo apt-get upgrade 克隆项目到本地 : git cl ...

  2. 编写python扩展

    代码: #include <Python.h> static PyObject * spam_system(PyObject *self, PyObject *args) { const ...

  3. Centos环境下给PHP7.0安装yaf扩展

    首先要知道PHP的安装目录在哪里,以我当前的路径为例,在/usr/local/php目录下. 下一步需要下载扩展包,进入http://pecl.php.net/package/yaf寻找符合版本要求的 ...

  4. c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具

    c#实例化继承类,必须对被继承类的程序集做引用   0x00 问题 类型“Model.NewModel”在未被引用的程序集中定义.必须添加对程序集“Model, Version=1.0.0.0, Cu ...

  5. Python和C++的混合编程(使用Boost编写Python的扩展包)

    想要享受更轻松愉悦的编程,脚本语言是首选.想要更敏捷高效,c++则高山仰止.所以我一直试图在各种通用或者专用的脚本语言中将c++的优势融入其中.原来贡献过一篇<c++和js的混合编程>也是 ...

  6. VSCode的Python扩展下程序运行的几种方式与环境变量管理

    在VSCode中编写Python程序时,由于有些地方要使用环境变量,但是发现设置的环境变量有时不起作用,花了点时间研究了一下,过程不表,直接说结论. 首先,环境变量的设置,Python扩展中有三种方式 ...

  7. 编写Tesseract的Python扩展

    Tesseract是一个开源的OCR(光学字符识别)引擎,用于识别并输出图片中的文字.虽然和商业软件比起来识别精度不算很高,但是如果你要寻找免费开源的OCR引擎,可能Tesseract就是唯一的选择了 ...

  8. window下python 扩展库安装 使用第三方镜像源

    0.前言     由于python的官方镜像位于国外,若使用pip或者easy_install安装第三方插件时或许会被限制,甚至连easy_install或pip也无法安装,例如在windows环境下 ...

  9. CentOS 6 下安装Python 3

    可以下载各个版本的python:https://www.python.org/ftp/python/ 配置安装 下载最新的安装包(截止2013/11/05),还是3.3.2版本. #wget http ...

  10. 在Linux下编写php扩展

    以下内容是本人学习过程中的笔记或者心得,如果有什么建议或者意见请在评论中提醒我,谢谢,这篇文章我会定期更新,由浅到深的分享我学PHP扩展历程 或者在学习中有什么问题欢迎交流 1.去PHP官网下载一个源 ...

随机推荐

  1. web3 产品介绍: safe --多签钱包 多人审批更放心

    Safe是一款由Gnosis团队开发的多签钱包,它提供了一种安全.灵活和易于使用的方式来管理加密资产.在本文中,我们将介绍Safe的主要特点以及如何使用Safe来保护您的数字资产. 一.Safe的特点 ...

  2. 【Zookeeper】Re03 集群搭建

    我这里采用的是模拟真实情况: 部署三台虚拟机Centos7 192.168.242.101 192.168.242.102 192.168.242.103 每台机器都安装Zookeeper且一致: / ...

  3. 通用人工智能的基石 —— 人工智能“新基建、关键基础设施”—— 3D游戏引擎

    相关: https://www.unrealengine.com/zh-CN/uses/simulation https://www.epicgames.com/site/zh-CN/careers/ ...

  4. 数字人 —— 虚拟人 —— Inworld AI用生成式AI——生成式游戏NPC

    相关: https://www.ithome.com/0/756/603.htm https://baijiahao.baidu.com/s?id=1774732295233220838 https: ...

  5. 国产AI模型和美国顶级AI模型的距离在哪?—— 算力?算法?数据?

    前段时间去了长春一汽,聊了Reinforcement Learning方面的工作,既是面试,也是谈了谈意向,最后全部OK,本打算是签合同了,结果HR说要求有三年的社保缴纳证明工作经验,最后说可以减到2 ...

  6. MindSpore 计算框架 模型参数 和 优化器 参数的重新载入

    本文主要内容源于: https://www.mindspore.cn/tutorial/training/zh-CN/master/use/load_model_for_inference_and_t ...

  7. (计算机类)人工智能方向会议的截止时间表 —— AI Conference Deadlines —— 会议投稿截止时间

    由 https://paperswithcode.com/ 提供的时间表. 做AI方向的research,经常需要关注的就是conference的deadline,之前往往都是需要手动的去挨个搜索,下 ...

  8. C# 导出表格时表头优化思路

    众所周知 众所周知,如果使用DataTable.一般的思路是这么写的 var exprotData = new DataTable("Datas"); exprotData.Col ...

  9. java中线程的6中状态

    1.背景 编写多线程相关的程序,必然会用到线程状态的相关知识点, 那么这篇博客就给大家系统的分析一下多线程的状态, 由于java中线程状态与操作系统中的线程状态划分有区别, 因此这里优先介绍操作系统的 ...

  10. css手撕奥运五环

    巴黎奥运会正如火如荼地进行,本文来使用 CSS 来画一个奥运五环.奥运五环是相互连接的,因此在视觉上会产生重叠效果,这也是实现五环最有挑战性的部分.接下来,将利用 CSS 的伪元素,巧妙地实现环环相扣 ...