如何在setup.py脚本中设置错误跟踪器网址

28 投票
2 回答
1905 浏览
提问于 2025-04-17 13:21

我刚发现,在pypi网站的用户界面中,有一个叫“Bug跟踪网址”的字段,可以在编辑包的元数据时看到。

这个字段是存在的,所以我猜在setup.py文件中是可以支持的,但我用谷歌搜索却找不到相关的信息。

所以我的问题是,如何在我的setup.py文件中设置这个字段,这样在发布到pypi时,它可以自动填充这个信息。

2 个回答

6

在PyPi项目中设置Bug跟踪器的链接

在setup.py文件中,你可以使用 project_urls 来设置:

setup(
...
    project_urls={
        'Documentation': 'https://readthedocs.io/',
        'Funding': 'https://donate.pypi.org',
        'Say Thanks!': 'http://saythanks.io/to/example',
        'Source': 'https://github.com/pypa/sampleproject/',
        'Tracker': 'https://github.com/pypa/sampleproject/issues',
    },
...
)

字典的顺序是保持的,但在PyPi上显示时是 反向的

在这里输入图片描述

关于PyPi中的 bugtracker_url 旧代码

pypa/warehouse 问题 #233

bugtrack_url:如果我没记错的话,这是PyPI的维护者为了帮助项目而添加的,但同时PEP 345引入了Project-URL,目的是覆盖源代码库、bug跟踪器、邮件列表等。如果PEP 426或其相关标准保留了Project-URL(并可能通过定义常见网站的标签来改进它,比如“repository”),那么这个特殊情况就显得多余了。

而且

目前看起来,这个字段在他们的API中是硬编码为None。我猜他们在迁移时保留了这个字段以保持向后兼容……

21

这个条目叫做 bugtrack_url,但是它没有从 setup.py 文件中被读取到。

根据一些背景信息和代码,我了解到这个条目原本是打算在 PyPI 网站上使用的,作为每个项目的元数据,而不是通常的每个版本的信息。

现在这个字段被认为是一个 遗留字段(固定为 None),你应该通过 项目网址列表 来添加这样的信息,这个列表可以通过 setuptools 中的 project_urls 条目 来设置:

    project_urls={
        'Documentation': 'https://packaging.python.org/tutorials/distributing-packages/',
        'Funding': 'https://donate.pypi.org',
        'Say Thanks!': 'http://saythanks.io/to/example',
        'Source': 'https://github.com/pypa/sampleproject/',
        'Tracker': 'https://github.com/pypa/sampleproject/issues',
    },

这个选项在2017年11月 终于被添加到 setuptools,并在版本 38.3.0 中上线。

撰写回答