这在Packaging Python Projects 中有详细记录。
创建 README.md
创建一个名为 README.md 的文件并根据需要对其进行编辑(在 Markdown 中)。
创建setup.py
setup.py 是setuptools 的构建脚本。它告诉setuptools 你的包(例如名称和版本)以及要包含的代码文件。
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="example-pkg-your-username",
version="0.0.1",
author="YOUR NAME",
author_email="YOUR EMAIL",
description="A small example package",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/pypa/sampleproject",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
)
创建许可证
创建一个名为LICENSE 的文件并从here 中选择您的内容。
生成分发档案
下一步是为包生成分发包。这些是上传到包索引的档案,可以通过 pip 安装。
我们首先需要确保安装了wheel 和setuptools:
python3 -m pip install --user --upgrade setuptools wheel
现在我们需要从setup.py所在的同一目录运行以下命令:
python3 setup.py sdist bdist_wheel
上传分发档案
建议在实际 PyPi 之前上传到TestPyPi - 虽然我不会介绍这部分。
以下步骤展示了如何将包上传到 PyPi:
- 安装
twine:
python3 -m pip install --user --upgrade twine
- 注册PyPi。
- 运行
twine 将dist 包上传到PyPi:
python3 -m twine upload dist/*