我的RST自述文件未在PyPi上正确格式化

时间:2019-03-29 17:08:35

标签: python pypi python-packaging twine

我将软件包上传到pypi.org,但是我的RST自述文件格式不正确。

这是在GitHub上的样子:https://github.com/NinjaSnail1080/akinator.py

这是在PyPi上的样子:https://pypi.org/project/akinator.py/

由于某种原因,在GitHub上所有内容的格式都正确,但在PyPi上则完全没有格式。与其显示RST格式的自述文件,不如说是一堆完整的未格式化文本。

我尝试在项目上运行python3 -m twine check dist/*,并获得了以下信息:

Checking distribution dist/akinator.py-1.0.3.dev3-py3-none-any.whl: warning: `long_description_content_type` missing.  defaulting to `text/x-rst`.
Failed
The project's long_description has invalid markup which will not be rendered on PyPI. The following syntax errors were detected:
line 26: Error: Unexpected indentation.
Checking distribution dist/akinator.py-1.0.3.dev3.tar.gz: warning: `long_description_content_type` missing.  defaulting to `text/x-rst`.
Failed
The project's long_description has invalid markup which will not be rendered on PyPI. The following syntax errors were detected:
line 26: Error: Unexpected indentation.
line 26: Error: Unexpected indentation.

由于某种原因,它说long_description_content_type丢失了,这是不正确的。我的setup.py文件专门说long_description_content_type="text/x-rst"。它还在long description的第26行中提到了意外的缩进,但该行根本没有缩进。

我绝对不知道我在这里做错了什么。不知何故,它在GitHub上看起来还不错,但是在PyPi上,只是一团糟。 twine check给我的警告没有任何意义。

2 个答案:

答案 0 :(得分:1)

问题是您在License字段中是including your entire license,但是此字段是only supposed to be a short description or name of the license –不应包含换行符。

这将产生以下元数据:

Metadata-Version: 2.1
Name: akinator.py
Version: 1.0.3.dev2
Summary: An API wrapper for the online game, Akinator, written in Python
Home-page: https://github.com/NinjaSnail1080/akinator.py
Author: NinjaSnail1080
Author-email: innuganti.ashwin@gmail.com
License: MIT License

Copyright (c) 2019 NinjaSnail1080

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

第一个换行符之后的所有内容都解释为Long-Description

要解决此问题,只需设置license="MIT"或将其完全省略-它是可选的,并且您已经在分类列表中找到了它。

setuptools的一个https://github.com/pypa/setuptools/issues/1390

中存在一个要解决的错误。

答案 1 :(得分:0)

我有相同的症状。使用python3.7代替python3.6有帮助:

python3.7 setup.py sdist bdist_wheel

操作系统:Ubuntu 18.04.2 LTS