为什么我有Description-Content-Type:UNKNOWN

时间:2017-11-20 15:36:25

标签: python python-packaging

我最近在.egg-info/PKG-INFO Description-Content-Type发现了一个新的元数据。

当我跑步时:

python setup.py egg_info

我明白了:

Description-Content-Type: UNKNOWN

例如,如何判断我使用Markdown(text/markdown)?

1 个答案:

答案 0 :(得分:0)

元数据字段Description-Content-Typesetuptools v36.4中引入(于2017年9月)。在Core Metadata v2.1中可用。

您可以在setup.py中使用此元数据来指定软件包Description的内容类型。

经典用法是将项目的自述文件填充到long_description中。 然后,您可以使用long_description_content_type参数设置内容类型。

项目的详细说明显示在PyPi(Python包索引)中。 您可以阅读PyPA文章:“ Including your README in your package’s metadata”。

这里是一个例子:

import io

from setuptools import setup


def read(filename):
    with io.open(filename, mode="r", encoding='utf-8') as fd:
        return fd.read()


setup(
    name="YourProject",
    version='1.2.3',

    description="One line description of your project",
    long_description=read("README.rst"),
    long_description_content_type='text/x-rst',

    ...
)

您可以选择以下内容类型之一:

  • "text/plain":用于简单文本(例如:“ README”或“ README.txt”),
  • "text/x-rst":用于reStructuredText(例如:“ README.rst”),或
  • "text/markdown":用于Markdown(例如:“ README.md”)。

注意:Markdown的支持是最近的(您需要setuptool> = 38.6)。

此外,您可以使用twine来检查软件包的详细描述(一旦构建了可分发文件)。例如:

twine check dist/*