什么是SDK
先放一段专业性的文字来解释:
SDK即“软体开发工具包”,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。
开发者不需要再对产品的每个功能进行开发,选择合适稳定的SDK服务并花费很少的经历就可以在产品中集成某项功能。
我的理解:
之前我们写代码都是
import numpy
import os
import 。。。。。。。
然后再调用相关函数,但是,当我们把自己写的代码用sdk打包以后,我们可以import自己写的东西,有没有很酷炫,而且别人也能用。
帮助理解sdk的参考博客
SDK打包方法
以下面的项目文件夹结构为例
demo包下面是你想打包的项目。
buildings_selector.h5是我的项目要用到的模型文件,你的可能是.txt文件或者是.xls文件等等。
_inint _.py文件必须存在,可以是空的,在这里我的文件内容如下:
from demo import bcover
cover.py文件内容如下所示,包含自己写的各种方法,用于后期调用
1. 打包sdk,必须要添加以下4个文件:setup.py、setup.cfg、README.rst、MANIFEST.in,位置如下所示,和demo文件夹在同一个父文件夹下。
2. setup.py的内容如下:
import os
import setuptools # 没有的直接pip install一下就行了
setuptools.setup(
name='DEMO', # 这里的名字最好和代码的文件名一样
version='1.0',
description='A demo for python packaging.', # 一个简要的介绍
long_description=open(
os.path.join(
os.path.dirname(__file__),
'README.rst'
)
).read(),
packages=setuptools.find_packages(),
include_package_data = True,
author='xxx',
author_email='xxxxxxxx.com',
)
3. 打包过程一般是默认只打包py文件的,因此要想一并打包非py文件,需要在setup.py里加入include_package_data = True这句话和MANIFEST.in文件,MANIFEST.in文件的设置如下:
include demo/data/buildings_selector.h5
我的这里README.rst文件内容是空的。
4.一切准备就绪,我使用的是pycharm哈,打开pycharm下面的终端
在项目路径(打开terminal默认就是,我的在这里是bse_sdk路径)下,执行如下命令进行打包:
python setup.py bdist_wheel
运行过后刷新文件夹,会出现三个新的文件,具体如下:
打开disk就能看到打包好的.whl文件了,直接在命令行键入pip命令即可安装。
新开个工程引入就可以使用了。
from demo import bcover
5. 调用方拿到whl包以后直接用如下命令即可安装:
pip install xxxxx.whl
PS:
打包好sdk进行使用的时候,提示
OSError: SavedModel file does not exist at: buildings_selector.h5/{saved_model.h5/{saved_model.pbtxt|saved_model.pb}
上面项目中我使用了一个.h5文件,为了无论何时无论何地都能定位到该文件,我使用了如下代码去找他的绝对路径,危机解除。
参考博客
参考博客