【教程】在UBUNTU下将PYTHON的FUNCTION编译为.SO动态链接库
- 在PYCHARM里面运行,管他三七28,先写一个main再说
import toBeSo
aa = toBeSo.add(1, 2)
print(aa[0])
print(aa[1])
print[aa]
- 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.youkuaiyun.com/qq_41699621/article/details/103596742
创建一个新的文件命名为
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)
运行即可获得函数的结果

本文介绍如何在Ubuntu环境下使用Python和Cython将Python函数编译成动态链接库(.so文件)。通过具体示例,包括设置环境、编写Python源代码、创建编译脚本setup.py并运行编译命令,最终生成可用于Python程序的动态链接库。
31万+

被折叠的 条评论
为什么被折叠?



