在pypi中,yank某个包是什么意思
在PyPI(Python Package Index)里,“yank”一个包指的是将特定版本的包标记为不再推荐使用。不过,该版本依旧会保留在PyPI上,只是用户无法再通过pip install
命令默认安装被yanked的版本。
Yank的具体作用
- 版本保留:包的文件不会被删除,之前安装了该版本的项目仍能继续使用。
- 阻止新安装:使用
pip install package_name
命令时,pip会自动跳过被yanked的版本。 - 特殊需求可安装:如果确实需要安装被yanked的版本,可以使用
pip install package_name==version --force-reinstall
命令。
Yank的应用场景
- 当包的某个版本存在安全漏洞、严重错误或者违反分发规则时,就需要进行yank操作。
- 若要撤回错误上传的版本,也可使用yank功能。
如何执行Yank操作
包的维护者可以通过PyPI的网页界面或者Twine工具来yank某个版本。具体操作如下:
# 使用Twine yank指定版本
twine upload --repository pypi --skip-existing dist/* # 先上传新版本
twine yank package_name==version # 再yank旧版本
Yank与删除的差异
- Yank:只是将版本标记为不推荐使用,文件仍然保留。
- 删除:这种情况极为罕见,只有在法律要求或者存在严重安全风险时,PyPI管理员才会执行删除操作。
在实际的开发过程中,yank是一种用来管理包版本的重要方法,它能够避免用户安装有问题的版本,同时又不会破坏已有的依赖关系。