Python: 打包发布到PyPi上

经常会碰到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="[email protected]" },
]
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目录 ,暂时弄一个空目录即行

Python: 打包发布到PyPi上_第1张图片
二、打包操作
我是在windows平台下打包的:具体如下,

py -m pip install --upgrade pip setuptools wheel 
py -m pip install --upgrade build

在打包的目录下:

py -m build

Python: 打包发布到PyPi上_第2张图片

这样,就生成了dist目录及相关的.gz和whl文件。
Python: 打包发布到PyPi上_第3张图片三、上传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文件,这个不详述,到处都有介绍。

重点是,要对setup.py进行检查,以确认模块是否语法正确。

$ python3 setup.py check

如下:

D:\py_projects\dbpystream\> python  setup.py check

running check

表明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/*

Python: 打包发布到PyPi上_第4张图片

你可能感兴趣的:(python,API,python,开发语言)