pyx文件编译为pyd/so文件(分别在windows/linux系统下)

  • Python有以下几种类型的文件:
  • py:Python控制台程序的源代码文件
  • pyx:是Python语言的一个编译扩展,它实际上是Cython语言的源代码文件(可以理解为既支持Python语言也支持C/C++)。
  • pyc:Python字节码文件(可通过逆向编译来得到源码),__pycache__目录,里面存放着被加载模块的字节码文件。
  • pyd:在Windows平台上Python的库文件(Python版DLL)
  • so:在Linux平台上是so文件
  • 通常,想要在py文件中调用C/C++编写的函数/代码,可以通过对pyx文件进行编译得到win系统下的pyd文件或者Linux系统下的so文件,就可通过import导入了
  • 例如:pycocotools中:

  • 编译得到pyd和so文件的过程如下
  • 首先,编写set_up.py文件
python 复制代码
from setuptools import setup
from Cython.Build import cythonize
import numpy as np
 
setup(
    name='_mask',
    ext_modules=[Extension(
            '_mask',
            ['_mask.pyx']
            include_dirs=[np.get_include()])]
)
  • 执行如下命令:python set_up.py build_ext --inplace
  • 最后,在win系统下:
  • 在linux系统下:
相关推荐
芬加达8 小时前
jvm八股
运维·服务器·jvm
源码之家8 小时前
基于Python房价预测系统 数据分析 Flask框架 爬虫 随机森林回归预测模型、链家二手房 可视化大屏 大数据毕业设计(附源码)✅
大数据·爬虫·python·随机森林·数据分析·spark·flask
SalvoGao8 小时前
Python学习 | 怎么理解epoch?
数据结构·人工智能·python·深度学习·学习
小兔薯了8 小时前
11. Linux firewall 防火墙管理
linux·运维·服务器
思成不止于此8 小时前
深入理解 C++ 多态:从概念到实现的完整解析
开发语言·c++·笔记·学习·多态·c++40周年
Linux技术芯8 小时前
浅谈SCSI寻址机制与工作阶段深度解析?
linux
楚疏笃9 小时前
纯Python 实现 Word 文档转换 Markdown
python·word
ink@re9 小时前
Docker环境搭建与容器管理实战:从部署到编排的完整指南
运维·docker·容器
谅望者9 小时前
数据分析笔记08:Python编程基础-数据类型与变量
数据库·笔记·python·数据分析·概率论
mortimer9 小时前
【实战复盘】 PySide6 + PyTorch 偶发性“假死”?由多线程转多进程
pytorch·python·pyqt