查询PyPI包名称是否已被占用的最优方法是什么?
PyPI 包名可用性可靠查询方法
普通网页搜索结果存在索引延迟、隐藏包不展示等问题,无法作为包名可用的判断依据,可通过以下几种高可靠性方式查询:
- 通过官方元数据接口验证
直接请求对应包名的元数据地址,如果返回404状态代表包名未被占用,返回200则说明名称已被注册,该接口数据实时同步,不存在搜索页的延迟问题。 - 使用
twine预校验
打包完成后,先运行twine check dist/*做基础校验,之后可通过twine register命令尝试预注册包名,若返回注册失败则说明名称已被占用,该操作不会上传你的包代码,仅做名称可用性校验。 - 通过简单索引验证
访问对应包名的简单索引路径,返回404即代表包名可用,该索引更新优先级远高于公开搜索页,几乎不存在延迟。
注意:PyPI包名规则为大小写不敏感,且下划线
_和连字符-会被判定为等价字符,例如test-pkg和Test_Pkg属于同一个包名,查询时需要同时确认不同格式的名称避免踩坑。
内容的提问来源于stack exchange,提问作者Peter Cotton
相关产品推荐
相关产品推荐

