python 将函数封装成pyd或者so文件,调用该文件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

例如:


提示:以下是本篇文章正文内容,下面案例可供参考

一、装包?

pip install cython

二、使用步骤

1.需要加密的函数

代码如下(示例):

#!/usr/bin/python3.6.10
# -*- coding: utf-8 -*-
# @Author  : j.
# @Time    : 2022/7/20 13:52
# @File    : pp.py

import os
import time
from pathlib import Path


def func(n):

    li = []
    for i in range(n):
        li.append(i)
    return li


if __name__ == '__main__':
    res = func(10)

    print(res)
    pass

2.用于加密函数的逻辑

代码如下(示例):

#!/usr/bin/python3.6.10
# -*- coding: utf-8 -*-
# @Author  : j.
# @Time    : 2022/7/20 13:51
# @File    : a.py

from distutils.core import setup

from Cython.Build import cythonize

from distutils.extension import Extension


def main():
    # 这里为文件名 可以增加多个Extension('  ', ['  '])
    # extensions = [Extension('detectOpenvino',['detectOpenvino.py'])]
    extensions = [Extension('pp',['pp.py'])]
    setup(ext_modules=cythonize(extensions))
	# setup(ext_modules=cythonize(['class_predict.py','model.py','keypoint_infer.py','litehrnet_model.py'])) 打包单个

if __name__ == '__main__':
    main()

3. 执行命令


python a.py build_ext
"""
之后完后会生成 release/ 以及 amd/ windows下只需要 .pyd 文件(该文件是可以修改名字的后缀.pyd不变)

在build/py36/pp.pyd
"""


4. 加密后函数的调用

#!/usr/bin/python3.6.10
# -*- coding: utf-8 -*-
# @Author  : j.
# @Time    : 2022/7/20 14:19
# @File    : a1.py

from pathlib import Path
import os
import sys
pyversion = "".join(sys.version.split(".")[:2])
lib_path = Path(os.path.abspath(__file__)).parent / "build" / ("py" + pyversion)
print(lib_path)
sys.path.insert(0, lib_path.as_posix())

from pp import func  # 模块里的函数名

print(func(10))


总结

提示:这里对文章进行总结:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值