从本地 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 索引中的详细信息,而不重新创建包?

如何从 Pypi 中删除一个包

无法获取索引库URL https://pypi.python.org/simple/〜安装Python 3 OS X之后

oracle 有全局索引怎么删除分区