生成一个Pypi友好的自述文件

自述文件可以帮助您的用户理解您的项目,并可用于在PYPI上设置项目的描述。本指南帮助您以Pypi友好格式创建自述文件,并将自述文件包含在包中,使其显示在Pypi上。

创建自述文件

python项目的自述文件通常命名为 READMEREADME.txtREADME.rstREADME.md .

要使自述文件正确显示在Pypi上,请选择Pypi支持的标记语言。支持的格式 PyPI's README renderer 是:

通常将自述文件保存在项目的根目录中,与 setup.py 文件。

在包的元数据中包含自述文件

要将自述文件的内容作为包描述,请设置项目的 DescriptionDescription-Content-Type 元数据,通常在项目的 setup.py 文件。

例如,在包的 setup.py 文件,使用 setup()long_descriptionlong_description_content_type .

设置的值 long_description 到自述文件本身的内容(而不是路径)。设置 long_description_content_type 接受 Content-Type -自述文件标记的样式值,例如 text/plaintext/x-rst (用于重构文本),或 text/markdown .

注解

如果使用Github风格的降价来编写项目描述,请确保升级以下工具:

python3 -m pip install --user --upgrade setuptools wheel twine

各工具的最低要求版本如下:

  • setuptools >= 38.6.0

  • wheel >= 0.31.0

  • twine >= 1.11.0

建议您使用 twine 要上载项目的分发包,请执行以下操作:

twine upload dist/*

例如,请参见 setup.py 文件,它读取 README.md 作为 long_description 并将标记标识为Github风味的降价:

from setuptools import setup

# read the contents of your README file
from os import path
this_directory = path.abspath(path.dirname(__file__))
with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f:
    long_description = f.read()

setup(
    name='an_example_package',
    # other arguments omitted
    long_description=long_description,
    long_description_content_type='text/markdown'
)

正在验证重构文本标记

如果您的自述文件是用restructuredtext编写的,那么任何无效的标记都将阻止它呈现,从而导致pypi只显示自述文件的原始源文件。

注意文档字符串中使用的sphinx扩展名,例如 directives and roles (例如,“:py:func:`getattr`````或“`:ref:`my reference label````”)在这里不允许,并将导致错误消息,如“``error:unknown expressed text role”py:func“.`”。

您可以在上传前检查自述文件中的标记错误,如下所示:

  1. 安装最新版本的 twine ;需要1.12.0或更高版本:

    pip install --upgrade twine
    
  2. 为您的项目构建SDIST和车轮,如下所述 打包您的项目 .

  3. twine check 在SDIST和车轮上:

    twine check dist/*
    

    此命令将报告呈现自述文件时出现的任何问题。如果标记呈现良好,则命令将输出 Checking distribution FILENAME: Passed .