经常会碰到python包要打包成sdk放到PyPi上开源的情况。
下面的操作具体参考:https://packaging.python.org/en/latest/tutorials/packaging-projects/。
一、准备
1、pyproject.toml
我的具体如下
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "dbpystream"
version = "0.6"
authors = [
{ name="songroom", email="rustroom@163.com" },
]
description = "A data api "
readme = "README.md"
requires-python = ">=3.6"
classifiers = [
"Programming Language :: Python :: 3.6",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
2、LICENSE,格式内容
具体找链接 copy一下。
3、README.md
这个自己整一下即可以。这个是markdown格式
4、test目录 ,暂时弄一个空目录即行
二、打包操作
我是在windows平台下打包的:具体如下,
py -m pip install --upgrade pip setuptools wheel
py -m pip install --upgrade build
在打包的目录下:
py -m build
这样,就生成了dist目录及相关的.gz和whl文件。
三、上传PyPi
1、安装上传工具:
py -m pip install --upgrade twine
如果权限有问题,不妨试试用–user用户:
py -m pip install --user --upgrade twine
2、上传
在指定的包文件目录下,
py -m twine upload --repository testpypi dist/*
四、验证
pip install XXXX
五、问题
1、pip升级问题
ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。: 'c:\\python310\\lib\\site-packages\\pip-21.2.3.dist-info\\entry_points.txt'
Consider using the `--user` option or check the permissions.
报错信息中推荐使用 --user 命令,
C:\Python310\python.exe -m pip install --user --upgrade pip
后面解决。
PS D:\dbpystream> pip -V
pip 22.3.1 from C:\Users\****\AppData\Roaming\Python\Python310\site-packages\pip (python 3.10)
成功升级。
六、另外方法:
https://blog.csdn.net/weixin_43804047/article/details/125843871
1、准备
(1)setup.py文件,这个不详述,到处都有介绍。
(2)安装好打包 工具
python3 -m pip install --user --upgrade setuptools wheel
2、打包,会生成两个文件
python3 setup.py sdist bdist_wheel
3、上 传
(1)安装上传工具
python3 -m pip install --user --upgrade twine
(2)上传pypi
twine upload dist/*