我使用以下方式将软件包上传到PyPi:
python setup.py register -r pypi python setup.py sdist upload -r pypi
我正在尝试修改我写的描述( 请不要编辑以下代码的格式,我故意这样做是为了演示我的问题 ):
**my plugin** This plugin enables you to ... For example: ```python @attr(section='MySection', id=1) def test_function(self): """ Bla bla bla """ pass ```
但是,文本按原样显示, 没有 降价格式。我究竟做错了什么?
截至2018年3月16日,PyPI.org又名Warehouse(最终)在详细说明中支持Markdown。Warehouse在2018年4月取代了旧的旧版PyPI实施。
你需要:
确保setuptools已升级到版本38.6.0或更高版本
setuptools
确保twine已升级到版本1.11.0或更高版本
twine
确保wheel已升级到版本0.31.0或更高版本
wheel
为long_description_content_type您的setup()呼叫添加一个名为的新字段,并将其设置为'text/markdown':
long_description_content_type
setup()
'text/markdown'
setup( long_description="""# Markdown supported!\n\n* Cheer\n* Celebrate\n""", long_description_content_type='text/markdown', # ....
)
请参阅PEP 566- Python软件包2.1的元数据 。
$ python setup.py sdist bdist_wheel # adjust as needed
$ twine upload dist/*
旧的旧版PyPI基础架构不会呈现Markdown,只有新的Warehouse基础架构能够呈现。遗留的基础架构现已消失(截至2018-04-30)。
目前,PyPIcmarkgfm通过该readme_renderer库用作markdown渲染器(readme_renderer.markdown.render(long_description)用于生成HTML输出)。这意味着您的markdown文档将呈现 与 GitHub上 完全相同的 外观;它本质上是相同的渲染器。
cmarkgfm
readme_renderer
readme_renderer.markdown.render(long_description)
您可以long_description使用twine check命令(twine1.12.0或更高版本)来验证您的软件包。
long_description
twine check
旧的<2018-03-16答案如下。
注意:这是一个古老的,现在已经过时的答案,自2018年3月16日起,只要您使用正确的工具即可支持Markdown,请参见上文 。
PyPI将它 不 支持降价,所以你的自述不会被渲染成HTML。
如果您需要呈现的自述文件,请坚持使用reStructuredText;在狮身人面像的介绍新结构化是一个很好的起点。
您可能希望安装该docutils软件包,以便可以在本地测试文档;您想rst2html.py在自述文件上运行包含的脚本,以查看产生了什么错误(如果有)。您的特定样本有太多错误:
docutils
rst2html.py
$ bin/rst2html.py test.rst > /tmp/test.html test.rst:7: (ERROR/3) Unexpected indentation. test.rst:3: (WARNING/2) Inline literal start-string without end-string. test.rst:3: (WARNING/2) Inline interpreted text or phrase reference start-string without end-string. test.rst:11: (WARNING/2) Block quote ends without a blank line; unexpected unindent. test.rst:11: (WARNING/2) Inline literal start-string without end-string. test.rst:11: (WARNING/2) Inline interpreted text or phrase reference start-string without end-string.
您的代码块正在使用Github的Markdown扩展,对于reStructuredText来说,这是完全错误的。您可以使用reST代码块(可能是dodocils的PyPI版本足够新):
.. code-block:: python @attr(section='MySection', type='functional+', module='MyModule', id=1) def test_function(self): """ This is the original docstring """ pass
要在本地测试,您还需要安装Pygments。
如果您有兴趣,可以通过功能请求和拉取请求来添加对Markdown的支持。