一:背景
由于组内成员每次连接Dli,DGC都要重新初始化一下连接,配置账号,现在把连接部分出抽出来,打包放在Linux上面,可以直接调用方法,传入sql就可以直接使用。
二:实现思路
1.打包的方式有两种,一种是egg包一种是whl包。按照官网说法,wheels是发行版Python的新标准并且要取代.egg
pip install setuptools
pip install wheel
2.新建python的setup.py文件,进行打包,放在Linux上面解压,然后导入模块
三:实现步骤
1.在根目录下创建setup.py
from setuptools import setup, find_packages
REQUIRES = ["avro", "certifi", "esdk_obs_python", "future", "python-dateutil",
"six >= 1.10", "urllib3 >= 1.15"]
setup(
# 打包的名字
name='dli-sdk-python',
version='1.0.8',
# 需要打包的目录列表。可以使用setuptools.find_packages()自动发现
# 可以使用 exclude 来排除不打包的package 例如 packages=find_packages(exclude=['examples*'])。packages=find_packages(include=["pro", "pro.*"])
packages=find_packages(exclude=['examples*']),
# py_modules 需要打包的python文件列表 这个可以单独打包某一个文件
# 项目依赖的 Python 库,使用 pip 安装本项目时会自动检查和安装依赖
install_requires=REQUIRES,
zip_safe=False,
description='Huawei Cloud DLI Python SDK',
long_description='Huawei Cloud DLI Python SDK',
keywords=['huawei', 'dli', 'python'],
platforms='Independant',
url='https://www.huaweicloud.com/product/dli.html'
)
2. 打包
// 打成egg
python3 setup.py sdist
// 打成whell
python3 setup.py bdist_wheel
执行成功后,目录下除了 dist 和 *.egg-info 目录外,还有一个 build 目录用于存储打包中间数据。其中py3表示只能用python解压。如果想要其他版本,可以在打包的时候使用参数 -- universal来打成python通用的包。
3.上传到服务器解压
// egg
// 把生成的包上传到linux上面
// 在dist 目录下生成后缀为 tar.gz 的文件,解压后可以使用
python3 setup.py install
// wheel
// 把生成的 .whl文件上传到Linux上面,然后使用
pip3 install dist/fisrtApp-0.0.1-py3-none-any.whl
4.测试
1.使用 pip list 命令可以看出是否已经安装成功
2.进入python,调用模块
from ods import generate_dli_sql_day_task
转载: Python打包分发工具setuptools_pyfreyr的博客-CSDN博客_python setuptools
Python 制作可安装包_白月蓝山的博客-CSDN博客