PyPi上long_description无法显示问题求助
排查PyPI长描述不显示的问题
嘿,我瞅了下你的setup.py代码,发现几个关键问题,咱们一步步来解决:
1. 最核心的遗漏:setup()未传入long_description参数
你已经正确读取了README.rst的内容到long_description变量里,但没有把这个变量传递给setup函数!PyPI根本不知道要使用这段内容作为长描述,所以自然不会显示。
修改你的setup.py,补充缺失的参数,同时建议加上long_description_content_type明确告诉PyPI这是reStructuredText格式的内容:
from setuptools import setup from codecs import open from os import path here = path.abspath(path.dirname(__file__)) with open(path.join(here, 'README.rst'), encoding='utf-8') as f: long_description = f.read() setup( name='matchmod', version='1.2.1', description='Simple Rust-like ...', # 补充这两个关键参数 long_description=long_description, long_description_content_type='text/x-rst' )
2. 验证README.rst的格式兼容性
本地显示正常不代表PyPI的渲染器能正常解析——PyPI使用的rst渲染规则更严格,比如标题层级、列表格式、链接语法稍有错误就会导致渲染失败。
你可以用官方推荐的工具提前验证:
# 先安装验证工具 pip install readme-renderer # 本地渲染检查README格式 python -m readme_renderer README.rst
如果输出里有错误提示,按照提示修复你的README.rst即可。
3. 确保构建wheel时包含README文件
有时候即使代码里读取了README,如果MANIFEST.in文件没有指定包含该文件,构建出的wheel包可能会缺失README,导致PyPI无法读取。
在项目根目录创建MANIFEST.in文件,内容如下:
include README.rst
这样构建wheel时就会自动把README.rst包含进去。
做完以上三步,重新构建wheel包并上传到PyPI,长描述应该就能正常显示啦!
内容的提问来源于stack exchange,提问作者user9384354




