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系统下:
相关推荐
啊我不会诶5 分钟前
2024ICPC西安邀请赛补题
c++·算法
ZenosDoron6 分钟前
keil软件修改字体,Asm editor,和C/C++ editor的区别
c语言·开发语言·c++
其实防守也摸鱼19 分钟前
sqlmap下载和安装保姆级教程(附安装包)
linux·运维·服务器·测试工具·渗透测试·攻防·护网行动
qq_6543669822 分钟前
如何排查Oracle客户端连接慢_DNS解析超时与sqlnet配置优化
jvm·数据库·python
玄月三初22 分钟前
使用pandoc把word转换成markdown格式
vscode·word·markdown
山栀shanzhi27 分钟前
C/C++之:构造函数为什么不能设置为虚函数?
开发语言·c++·面试
谭欣辰34 分钟前
C++ 版Dijkstra 算法详解
c++·算法·图论
yuan1999735 分钟前
C&CG(列与约束生成)算法,来解决“风光随机性”下的微网鲁棒配置问题
c语言·开发语言·算法
jingyu飞鸟41 分钟前
Linux系统发送邮件,解决信誉等级低问题 docker compose修改启动一键使用
linux·运维·docker
Lumos_77744 分钟前
Linux -- exec 进程替换
linux·运维·chrome