python 调用动态库,python如何生成dll文件

  python 调用动态库,python如何生成dll文件

  目前,随着深度学习的发展,python已经成为深度学习的第一语言。它是深度学习工具包的python版本,很多重要的算法都有python版本。为了将这些算法应用到具体的项目中,工具箱还提供了各种类型的接口。动态链接库。因此,Dll)是一种非常重要的跨语言协同系统开发方法。算法编写的Python语言编译成动态库,可以使用其他语言,大大提高了算法的效率。但是python可以调用动态库生成的其他语言,但是作为脚本语言,python不能直接编译生成动态库。要生成动态库,使用cython将python脚本转换成C语言文件。具体过程将作为一个简单的例子来说明。Def _ Add (str1str2):返回代码int (str1) int (str2),将两个数字的字符串转换为一个数字和一个金额。

  根据cython的语法,我们提供了cython版本的函数:cdef public str _ add(str 1 str 2):return int(str 1)int(str 2),用之前的python版本将这段代码保存为检查文件。比如说。然后,当运行下面的命令将这段代码转换成C语言版本:cython时,就会生成两个文件目录中的内容:这两个文件实现函数调用python的c api的代码。然后,我们创建了一个主文件的动态库:# include\u201C。普通学生是_ _ declspec(DLLExport)int _ stdcall _ str _ add)const char * b。

  py init _ run(;# dll调用初始化。这是怎么创造出python3的?initrun().看到了世代的断裂;case _ process _ detach:py _ finalize(;骨折;真实;名为} _str_add的文件定义了导出函数。Python将所有数据存储在pyobject中。该函数使用PyUnicode_FromString将两个字符串转换为python对象类型,调用内部函数str_add的和,将python对象的结果转换为整数值,然后返回PyLong_AsLong。这段代码可以被编译生成一个dll。由\ in cl \/LD生成的dll:创建一个简单的电话并测试\ U201D \ _ 201C # _ 201C

  但是,只有在一台计算机上安装了python,才能运行这个动态库。事实上,python代码通常需要许多与执行相关的软件包。此外,每个块中所需依赖包的代码是不同的。为了找到这些包,我们使用另一个工具pyinstaller。具体步骤如下。Virtualenv envpack #创建了一个新的环境,这使得python包依赖更加复杂。通过创建新环境,将CD env package # #输入目录(软件包的最后一个描述)复制到该目录,然后运行所需的软件包。这是与上一个dll包相同的脚本。\\ virtualenv环境激活并切换pip安装pyinstaller # installer包装工具pyinstallerpyinstaller #包装器命令脚本\\成功禁用#包装器。

  Pyd文件,发布这些文件和dll。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: