乐知付加密服务平台

如果你有资源, 平台可以帮你实现内容变现, 无需搭建知识付费服务平台。

点击访问官方网站 https://lezhifu.cc

扫码关注公众号 乐知付加密服务平台-微信公众号
发布你的第一个python包 | chenzuoli's blog

发布你的第一个python包

这里介绍如何将你写的python工具包,打包成whl,并发布到pypi.org网站,使用pip进行安装使用。

大致步骤如下:

  1. 注册测试testpypi.org网站,生成上传的token
  2. 注册正式pypi.org网站,生成上传的token
  3. 编写代码
  4. 规划项目代码目录布局
  5. 编写打包文件pyproject.toml
  6. upload上传测试testpypi
  7. upload上传正式pypi

参考链接:
https://packaging.python.org/en/latest/tutorials/packaging-projects/

第一次打包命令如下:

1
2
3
4
5
6
7
# mac/linux
python3 -m pip install --upgrade pip # 安装升级pip
python3 -m pip install --upgrade build # 安装build工具包
python3 -m build # 编译打包
python3 -m pip install --upgrade twine # 安装上传工具包twine
python3 -m twine upload --repository testpypi dist/* # 发布测试testpypi
python3 -m twine upload --repository pypi dist/* # 发布正式pypi

升级包:

1
2
3
4
5
6
7
8
9
# windows
py -m build
py -m twine upload --repository testpypi dist/* # 发布测试
py -m twine upload --repository pypi dist/* # 发布生产

# mac/linux
python3 -m build
python3 -m twine upload --repository testpypi dist/*
python3 -m twine upload --repository pypi dist/*

项目结构大概如下:

1
2
3
4
5
6
7
8
9
packaging_tutorial/
├── LICENSE 开源协议
├── pyproject.toml 打包的配置文件
├── README.md 项目描述
├── src/ 源代码
│ └── example_package_YOUR_USERNAME_HERE/
│ ├── __init__.py
│ └── example.py
└── tests/

这里再具体介绍下打包的配置文件如何编写:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[project]
name = "chineserand"
version = "0.0.3"
authors = [
{ name="chenzuoli", email="chenzuoli709@163.com" },
]
description = "随机生成中文字符工具包"
readme = "README.md"
requires-python = ">=3.0"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]

[project.urls]
Homepage = "https://github.com/chenzuoli/chineserand"
Issues = "https://github.com/chenzuoli/chineserand/issues"

# 这里是配置打包时,是否包含txt rst数据文件,与根目录下的MANIFEST.in 文件配合使用
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
mypkg = ["*.txt", "*.rst"]

这里是配置打包时,是否包含txt rst数据文件,与根目录下的MANIFEST.in 文件配合使用

1
2
3
4
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
mypkg = ["*.txt", "*.rst"]

MANIFEST.in 文件内容的写法,参考:https://setuptools.pypa.io/en/latest/userguide/miscellaneous.html#using-manifest-in
包含某个文件,就这样写:

1
2
include src/chineserand/*.rst

不需要某个文件,就这样写:

1
exclude src/chineserand/*.py

好了,大家慢慢琢磨。


书山有路勤为径,学海无涯苦作舟。

欢迎关注微信公众号:【乐知付加密平台】,您的网络资源可变现
乐知付加密平台

一起学习,一起进步。

-------------本文结束感谢您的阅读-------------