每日一模块-python SDK打包教程
当我们自认为有点水准了,想炫耀下自己python神技时,怎么办,让别人使用你写的包,其中一种方法就是将封装好的能力打包成一个sdk供他们去调用!👌,不让世人知道本大侠的NB,怎么对得起自己呢,( ̄▽ ̄)"^^^^^^^
打包操作
- 创建打包目录结构,如下图
├─python-sdk
│ │ README.md
│ │ setup.py
│ └─MyLog
| my_log.py
│ __init__.py
|
# 目录说明
python-sdk 代表的是sdk根目录
README.md 介绍本sdk的使用方法及sdk的能力
setup.py 用于打完包后,调用者要使用该文件进行安装sdk到自己的python环境中
my_log 是您所提供能力的封装
# 本样例中的__init__.py 文件内容是我封装好的日志类,内容如下
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# DevVersion: Python3.6.8
# Date: 2020-09-25 09:04
# PyCharm|__init__.py
from MyLog.my_log import LogMiddleware
- 在setup.py文件中配置之后安装你的包,如本例
MyLog
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# DevVersion: Python3.6.8
# Date: 2020-09-25 09:13
# PyCharm|setup
from setuptools import (setup, find_packages)
setup(
# 包名
name="MyLog",
# 版本
version="0.1",
# github地址[我学习的样例地址]
url='https://github.com/snowroll/python-sdk.git',
# 包的解释地址
long_description=open('ReadMe.md', encoding='utf-8').read(),
# 需要包含的子包列表
packages=find_packages()
)
'''
name 包的名字
version 依赖关系很重要
packages 需要包含的子包列表,用find_packages()查找
url:包的链接,通常为 Github 上的链接,或者是 readthedocs 链接
setup_requires:指定依赖项
test_suite:测试时运行的工具
'''
- 安装工具包用于完成python的打包
# 一般默认来说这个包在我们创建工程时默认都会装好
pip install setuptools
- 开始您的第一个打包操作吧
python setup.py bdist_egg
# 会生成build、demo.egg-info 、dist三个目录
调用sdk
- 将需要用到上面sdk的工程中,解压该sdk并复制到您的工程中
- 切换到setup.py文件目录下即sdk的根目录,然后像安装离线包一样,执行命令
python setup.py install
安装MyLog包 - 调用该包
import MyLog
logger = MyLog.LogMiddleware(app_name="test_app", log_when="S", log_dir_path=os.path.dirname(os.path.abspath(__file__)))
遗留问题
- 导入该包,使用起来没有问题,但pycharm导包飘红警告,且无法点击进入包内
欢迎来公众号一起探讨python技巧和理财的知识
人生苦短,我用python!