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

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

文章目录

  • 前言
  • 一、装包?
  • 二、使用步骤
    • 1.需要加密的函数
    • 2.用于加密函数的逻辑
    • 3. 执行命令
    • 4. 加密后函数的调用
  • 总结


前言

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

例如:


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

一、装包?

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 pp.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))


总结

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

你可能感兴趣的:(python,开发语言)