打包流程
安装需要的工具
pip install --user --upgrade setuptools wheel twine
查看setuptools支持那些类型的包
python setup.py --help-commands
打包
python setup.py sdist bdist_wheel
sdist
会打包成压缩的源码,如果不想给用户暴露源码,则不应执行sdist
bdist
会打包成二进制文件,wheel
是可以通过pip被安装的格式
打包的包会出现在当前路径下的dist文件夹里
在linux下直接打包会出现如example_pkg-0.0.1-cp39-cp39-linux1_x86_64.whl
的wheel,直接上传到pypi会报错
HTTPError: 400 Client Error: Binary wheel 'example_pkg-0.0.1-cp39-cp39-linux_x86_64.whl' has an unsupported platform tag 'linux_x86_64'. for url: https://test.pypi.org/legacy/
因此需要指定platform name为manylinux1_x86_64
python setup.py bdist_wheel --plat-name=manylinux1_x86_64
为了维护资源的永久一致性,每个【包名】+【版本号】组合用就只能出现唯一一次,若和其他人已经上传的包冲突则无法成功上传。就算删除现存资源,也无法使用该【包名】+【版本号】组合。
先上传至测试平台,查看部署没有问题
平台地址: https://test.pypi.org/
twine upload --repository-url https://test.pypi.org/legacy/ dist/
再上传至真正的PyPI
平台地址: http://pypi.org/
twine upload dist/*
上传完成即可按照指示通过pip安装资源包
若有多个不同操作系统的包存在,pip会在安装时自动匹配对应的包,无法匹配则会报错
网友评论