将python程序打包成DLL的三种方式

前言

将Python程序打包成DLL可以方便其他编程语言调用Python模块的功能。通常有三种方式可以实现这一操作。

1. 使用ctypes模块

python自带的ctypes模块可以把C语言的动态链接库包装成Python模块,也可以在Python中加载自己建立的动态链接库。

示例:

# 1. 编写C语言代码

#include <stdio.h>
#include <stdlib.h>

int add(int a, int b) {
    
    
    return a + b;
}

int substract(int a, int b) {
    
    
    return a - b;
}

int max(int a, int b) {
    
    
    return a > b ? a : b;
}

// 编译生成动态链接库
// gcc -shared -o mylib.dll mylib.c 
# 2. 使用ctypes加载动态链接库并调用函数

from ctypes import *
mylib = CDLL('./mylib.dll')
print(mylib.add(1, 2))         # output: 3
print(mylib.substract(5, 3))   # output: 2
print(mylib.max(7, 3))         # output: 7

2. 使用pybind11库

Pybind11是一个轻量级的C++11库,它使得Python与C++互操作变得更加方便,基于pybind11可以将C++函数打包为Python模块。

示例:

// 编写C++代码
#include <iostream>
namespace example {
    int add(int i, int j) {
        return i + j;
    }
}

// 编译生成动态链接库
// g++ -shared -std=c++11 -fPIC `python -m pybind11 --includes` example.cpp -o example`python-config --extension-suffix`
# 使用pybind11加载动态链接库并调用函数

import example
print(example.add(1, 2))    # output: 3

3. 使用Cython进行编译

Cython 可以将Python程序转换为C/C++代码,并使用这些代码生成DLL文件。

示例:

# 编写Python代码,保存为fib.pyx

cpdef int fib(int n):
    cdef int i, a = 0, b = 1, temp
    for i in range(n):
        temp = a
        a = b
        b = temp + b
    return a

# setup.py, 用于编译pyx文件

from distutils.core import setup
from Cython.Build import cythonize


setup(ext_modules = cythonize("fib.pyx"))
# 编译生成动态链接库

python setup.py build_ext --inplace
# 使用ctypes加载动态链接库并调用函数

from ctypes import *
lib = CDLL('./fib.cpython-38-x86_64-linux-gnu.so')  # Python版本 3.8, windows下so要变成dll
print(lib.fib(6))    # output: 8

以上三种方式都可以方便地将Python程序打包成动态链接库,并提供给其他编程语言使用。

-END-


我下面也给大家整理了一些Python入门进阶的资料,大家如果有需要的话,可以参考以下这些资料

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python学习路线

在这里插入图片描述

在这里插入图片描述

二、Python基础学习

1. 开发工具

给大家准备考Python开发过程中需要用到的必备工具,包括最新版PyCharm安装永久机活工具。
在这里插入图片描述

2. 学习笔记

在这里插入图片描述

3. 学习视频

在这里插入图片描述

三、Python小白必备手册

在这里插入图片描述

四、Python实战案例

在这里插入图片描述

五、Python爬虫秘笈

图片

六、数据分析全套资源

在这里插入图片描述

七、Python面试集锦

在这里插入图片描述

在这里插入图片描述

2. 简历模板

在这里插入图片描述
在这里插入图片描述

资料领取

上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码输入“领取资料” 即可领取

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xiqng17111342931/article/details/134991875
今日推荐