ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python访问动态库的方式速记

2021-10-26 23:03:08  阅读:189  来源: 互联网

标签:头文件 Python py 扩展 速记 访问 模块 编写


详细信息清参考《Python CookBook》第三版第十五章和扩展和嵌入Python解释器

ctype

有一些 C 函数已经被编译到共享库中(或者Go编译成的C语言风格动态库)。希望可以使用纯 Python 代码调用这些函数,而不用编写额外的 C 代码或使用第三方扩展工具。

对于需要调用 C 代码的一些小的问题,通常使用 Python 标准库中的 ctypes 模块就足够了。要使用 ctypes ,你首先要确保你要访问的 C 代码已经被编译到和 Python
解释器兼容(同样的架构、字大小、编译器等)的某个共享库中了。

Python.h

想不依靠其他工具,直接使用 Python 的扩展 API 来编写一些简单的 C 扩展模块。

这个不光需要编译好的动态库,还需要对应的头文件。

  • 第一步:准备好目标动态库和对应的头文件
  • 第二步:# include "Python.h"编写C语言代码对目标库函数进行Python封装
  • 第三步:编写setup.py,通过python3 buildlib.py build_ext --inplace绑定扩展模块
  • 第四步: import使用

Swig

  • 第一步:准备目标动态库和头文件
  • 第二步:编写Swig接口文件
  • 第三步:swig转换
  • 第四步:编写setup.py,通过python3 buildlib.py build_ext --inplace绑定扩展模块
  • 第五步:import使用

Cython

  • 第一步:准备目标动态库和头文件
  • 第二步:编写pxd文件
  • 第三步:编写pyx文件
  • 第四步:编写setup.py,通过python3 buildlib.py build_ext --inplace绑定扩展模块
  • 第五步:import使用

标签:头文件,Python,py,扩展,速记,访问,模块,编写
来源: https://www.cnblogs.com/taceywong/p/15468340.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有