當我們自認為有點水准了,想炫耀下自己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技巧和理財的知識