从本地 pypi 索引中删除包
Posted
技术标签:
【中文标题】从本地 pypi 索引中删除包【英文标题】:Remove packages from local pypi index 【发布时间】:2014-08-10 04:01:36 【问题描述】:这与question 类似,但有一个例外。我想从我们的本地 pypi 索引中删除一些特定版本的包,这些是我过去使用以下命令上传的。
python setup.py sdist upload -r <index_name>
有什么想法吗?
【问题讨论】:
【参考方案1】:从本地 pypi 索引中删除包取决于您使用的 pypi 索引类型。
从devpi
索引中删除包
devpi
仅允许来自所谓的 volatile 索引的 removing packages。非易失性是“类似发布”的索引,不允许从中删除(因为您会根据发布的包让用户感到惊讶)。
例如对于包pysober
0.2.0 版:
$ devpi remove -y pysober==0.2.0
从公共 pypi 中删除包
在您已经提到的answer 中有描述。
从其他索引中删除包
可能会有所不同,但在许多情况下,您可以手动删除文件(小心谨慎)。
【讨论】:
【参考方案2】:作为@jan-vlcinsky 回答的附录
从pypiserver
中删除
以curl
为例:
curl --form ":action=remove_pkg" --form "name=<package_name>" --form "version=<version>" <pypiserver_url>
【讨论】:
【参考方案3】:我正在使用 pypiserver 并且不得不删除一个坏包,所以我只是通过 SSH 连接并删除了坏包并重新启动了服务。
命令大致如下:
ssh root@pypiserver
cd ~pypiserver/pypiserver/packages
rm bad-package*
systemctl restart pypiserver.service
这对我来说似乎工作得很好,您可以使用标准 shell 命令删除您需要的内容。请务必重新启动该进程,以便它刷新其索引。
【讨论】:
以上是关于从本地 pypi 索引中删除包的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有镜像的情况下创建本地自己的 pypi 存储库索引?
即使在名称冲突的情况下,pip 也可以从 PyPi 上的私有索引中选择包?
是否可以只更新 pypi 索引中的详细信息,而不重新创建包?
无法获取索引库URL https://pypi.python.org/simple/〜安装Python 3 OS X之后