Python/Pypi
我将在这篇文章中介绍如何将一个 Python package 发布到 Pypi. 尽量让步骤简洁, 以便任何人都可以在 3 分钟之内阅读完成.
官方教程: https://packaging.python.org/tutorials/distributing-packages/
示例项目: https://github.com/pypa/sampleproject
配置账号
首先在 $HOME 下写入以下内容至 .pypirc
:
[pypi]
username = __token__
password = pypi-xxxx
注意, 目前 pypi 已经不允许使用用户名和密码进行包的发布, 只允许使用 API Token. 要获得 API Token, 请访问: https://pypi.org/manage/account/
创建 pyproject.toml
在待发布的项目中创建 pyproject.toml
文件, 并写入以下模板内容:
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "sample"
version = "1.2.0"
authors = [
{ name="The Python Packaging Authority", email="pypa-dev@googlegroups.com" },
]
description = "A sample Python project"
readme = "README.md"
license = { file = "LICENSE" }
dependencies = ["peppercorn"]
[project.urls]
homepage = "https://github.com/pypa/sampleproject"
打包并发布
# 安装 build 依赖库
$ python -m pip install --upgrade build
# 安装 twine 依赖库
$ python -m pip install --upgrade twine
# 构建并使用 twine 发布代码
$ python -m build
$ python -m twine upload dist/*
本地开发
在本地开发的时候, 会希望源代码改变后, 会立即在其它项目中生效, 此时可以使用如下方式安装:
$ python -m pip install --editable .