【教程】在UBUNTU下将PYTHON的FUNCTION编译为.SO动态链接库

【教程】在UBUNTU下将PYTHON的FUNCTION编译为.SO动态链接库

  1. 在PYCHARM里面运行,管他三七28,先写一个main再说
import toBeSo

aa = toBeSo.add(1, 2)

print(aa[0])
print(aa[1])
print[aa]


  1. main里面调用了toBeSo.py文件内的add函数
    add函数内容如下
def add(x, y):
    # x = 90
    # y = 0

    arrayLength1 = 1
    arrayLength2 = 5
    i = 1

    out1 = [i for i in range(arrayLength1)]

    out2 = [i for i in range(arrayLength2)]

    i = 1
    for i in range(arrayLength1):
        out1[i - 1] = (x + y) * i
    i += 1

    i = 1
    for i in range(arrayLength2):
        out2[i - 1] = (x + y) * i * i
    i += 1

    # print(out1, out2)
    return out1, out2

运行后可以获得结果如下

在这里插入图片描述
3. 把add函数提取出来编译为.so文件

基本按照连接进行修改
https://blog.csdn.net/qq_41699621/article/details/103596742

https://www.cnblogs.com/1a2a/p/10509090.html?tt_from=weixin&utm_source=weixin&utm_medium=toutiao_ios&utm_campaign=client_share&wxshare_count=1

创建一个新的文件命名为
setup.py

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize(["toBeSo.py"]))

打开setup.py所在文件夹,打开终端,在终端内运行

python3 setup.py build_ext --inplace

可以获得名为toBeSo.cpython-36m-x86_64-linux-gnu.so的二进制动态链接库文件(build文件夹内)

删除toBeSo.py,准备调用.so文件

编辑python文件命名为useSo.py

import toBeSo

dd = toBeSo.add(3, 5)

print(dd)


运行即可获得函数的结果在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值