python封装成sdk_每日一模块-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技巧和理财的知识