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系统下:
相关推荐
程序员爱钓鱼29 分钟前
Python 综合项目实战:学生成绩管理系统(命令行版)
后端·python·ipython
Brsentibi29 分钟前
基于python代码自动生成关于建筑安全检测的报告
python·microsoft
程序员爱钓鱼30 分钟前
REST API 与前后端交互:让应用真正跑起来
后端·python·ipython
牢七33 分钟前
新linux
linux
铅笔小新z34 分钟前
C++入门指南:开启你的编程之旅
开发语言·c++
keep__go2 小时前
spark 单机安装
大数据·运维·分布式·spark
gCode Teacher 格码致知2 小时前
Python基础教学:Python的openpyxl和python-docx模块结合Excel和Word模板进行数据写入-由Deepseek产生
python·excel
HIT_Weston3 小时前
27、【Ubuntu】【远程开发】内网穿透:CA 签名
linux·运维·ubuntu
阿巴~阿巴~4 小时前
基于UDP协议的英汉翻译服务系统:从网络通信到字典查询的完整机制
linux·服务器·网络·网络协议·udp协议·套接字绑定·英汉翻译服务系统
阿巴~阿巴~4 小时前
简易回声服务器实现与网络测试指南
linux·服务器·网络·udp协议·网络测试·udp套接字编程