如何设置PyPI托管Python包的默认推荐安装版本?
如何让PyPI包默认安装指定旧版本(不用beta标记)
当然可以!不用把2.0改成beta版本,你可以通过PyPI的「yank」功能来实现这个需求,具体操作如下:
核心方法:标记2.0版本为Yanked
PyPI的yank功能允许你将某个版本标记为「不推荐默认安装」,但不会删除该版本——需要的用户仍然可以通过指定版本号安装它。当用户执行pip install MyPackage时,pip会自动跳过被yanked的版本,选择可用的最高非yanked版本(也就是你的1.0版本)。
两种标记方式
通过PyPI网页后台操作
登录你的PyPI账号,进入MyPackage的项目页面,切换到「Releases」标签页,找到2.0版本的条目,勾选「Yank this version」选项,点击保存即可完成标记。通过twine命令行操作
如果你还没上传2.0版本,或者需要对已上传的版本补标记,可以用twine工具:- 上传时直接标记为yanked:
twine upload --yank dist/MyPackage-2.0* - 对已上传的2.0版本单独标记:
twine yank --version 2.0 MyPackage
- 上传时直接标记为yanked:
注意事项
- 确保你的1.0版本没有被标记为yanked,这样它才会成为pip默认选择的目标版本。
- pip 20.0及以上版本才支持识别yanked版本,不过现在大多数用户的pip版本都满足这个要求,若遇到老版本用户,可以提示他们执行
pip install --upgrade pip升级。 - Yanked版本依然可以被用户通过
pip install MyPackage==2.0直接安装,完全不影响需要使用2.0版本的用户。
内容的提问来源于stack exchange,提问作者G-P




