python代码封装成SDK

转载地址https://blog.csdn.net/ytp552200ytp/article/details/88532951?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1.no_search_link&spm=1001.2101.3001.4242

1. 首先,我们需要一个工具包来协助我们完成python打包的任务

 pip install python-setuptools

2. 之后封装好你的项目api

一个简单的项目示例。https://github.com/snowroll/python-sdk.git

目录结构

python-sdk
│  │  README.md
│  │  setup.py
│  └─  Demo
│  │     └─ __init__.py
│  │     └─ test.py

Demo/init.py中只有一个输出函数demo(),这里可以自行封装自己的api

__init__.py


#!/usr/bin/env python
#-*- coding:utf-8 -*-
def demo():
    print "simple sdk demo"

Demo/test.py 中有一个输出函数testdemo(),这里可以自行封装自己的api
test.py


#!/usr/bin/env python
#-*- coding:utf-8 -*-
def testdemo():
    print "simple sdk testdemo"

3.编写setup.py文件,用于安装Demo包

#!/usr/bin/env python

#-*- coding:utf-8 -*-

 
from setuptools import setup, find_packages

 
setup(

name = "demo",

version = "0.1",

url = 'https://github.com/snowroll/python-sdk.git',

long_description = open('README.md').read(),

packages = find_packages(),

)

从setuptools中导入setup和findpackages,各参数的含义如下:

 
name: 包的名字

version: 版本号,对保持适当的依赖关系很重要

packages: 需要包含的子包列表,用find_packages()查找

url: 包的链接,通常为 Github 上的链接,或者是 readthedocs 链接

long_description: 将说明文件设置为README.md

4. 创建一个简单的包

执行

python setup.py bdist_egg

即可打包一个Demo的包

会生成build、demo.egg-info 、dist三个目录,将python-sdk目录打包,发给调用方

5. 安装和使用SDK

解压python-sdk
进入该目录下,运行python setup.py install 安装Demo包。

之后打开python命令行,尝试调用Demo包

 import Demo
Demo.demo()
simple sdk demo 

或者
from Demo import test
test.testdemo()
simple sdk testdemo
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是海康威视SDKPython 封装代码示例: ```python import os import time import json from hikvisionapi import Client # 初始化客户端 client = Client('http://192.0.0.64', 'admin', '12345') # 获取设备信息 device_info = client.get_device_info() # 获取通道列表 channels = client.get_channels() # 获取当前时间 current_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) # 设置文件保存路径 save_path = os.path.join(os.getcwd(), 'recordings') # 创建文件夹 if not os.path.exists(save_path): os.makedirs(save_path) # 遍历通道列表 for channel in channels: channel_name = channel['name'] channel_id = channel['id'] # 开始录制 resp = client.start_recording(channel_id) if resp['status'] == 'success': print(f'{current_time} - {channel_name} 开始录制') # 等待5秒 time.sleep(5) # 停止录制 resp = client.stop_recording(channel_id) if resp['status'] == 'success': print(f'{current_time} - {channel_name} 停止录制') # 获取录制文件信息 recordings = client.get_recordings(channel_id) if recordings: # 获取最新录制文件 recording = recordings[-1] # 下载录制文件 recording_id = recording['id'] recording_name = recording['name'] recording_size = recording['size'] recording_url = recording['url'] recording_path = os.path.join(save_path, recording_name) print(f'{current_time} - {channel_name} 开始下载录制文件') client.download_recording(recording_url, recording_path) print(f'{current_time} - {channel_name} 下载完') else: print(f'{current_time} - {channel_name} 无录制文件') else: print(f'{current_time} - {channel_name} 停止录制失败') else: print(f'{current_time} - {channel_name} 开始录制失败') ``` 这段代码使用了 `hikvisionapi` 库来封装了海康威视SDK的常用操作,包括获取设备信息、获取通道列表、开始录制、停止录制、获取录制文件信息、下载录制文件等。使用时需要将其中的IP地址、用户名、密码等信息修改为对应的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值