每日一模块-python SDK打包教程

当我们自认为有点水准了,想炫耀下自己python神技时,怎么办,让别人使用你写的包,其中一种方法就是将封装好的能力打包成一个sdk供他们去调用!👌,不让世人知道本大侠的NB,怎么对得起自己呢,( ̄▽ ̄)"^^^^^^^

打包操作

  1. 创建打包目录结构,如下图

├─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

  1. 在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:测试时运行的工具
'''

  1. 安装工具包用于完成python的打包
# 一般默认来说这个包在我们创建工程时默认都会装好
pip install setuptools
  1. 开始您的第一个打包操作吧
python setup.py bdist_egg

# 会生成build、demo.egg-info 、dist三个目录

调用sdk

  1. 将需要用到上面sdk的工程中,解压该sdk并复制到您的工程中
  2. 切换到setup.py文件目录下即sdk的根目录,然后像安装离线包一样,执行命令python setup.py install 安装MyLog包
  3. 调用该包
import MyLog
logger = MyLog.LogMiddleware(app_name="test_app", log_when="S", log_dir_path=os.path.dirname(os.path.abspath(__file__)))

遗留问题

  1. 导入该包,使用起来没有问题,但pycharm导包飘红警告,且无法点击进入包内

欢迎来公众号一起探讨python技巧和理财的知识

posted @ 2020-09-24 10:05  Alive_2020  阅读(3070)  评论(0编辑  收藏  举报