`pip install foo-package==1.0.0` 今天可以下载与昨天不同的代码吗

Can `pip install foo-package==1.0.0` download different code today than it did yesterday

我需要确保允许用于安全系统的软件包在将来再次安装时将保持静态。坏人(包所有者)能否诱骗用户下载 insecure/unvetted 源代码?

PyPI 禁止用户上传同名文件。因此,如果用户上传的包中有一个看起来像 foo-1.0.0-py2py3-none-any.whl 的 wheel 文件,他们就无法更新该文件以包含其他源代码。然而,他们可以做的是从 PyPI 中删除 v1.0.0 更改源代码,然后上传两者:foo-1.0.0-py2-none-any.whlfoo-1.0.0-py3-none-any.whl 有效地诱骗用户下载潜在的恶意 wheel。

PyPI 维护者在这里:是的,这是可能的,因为 pip 将安装最佳发行版。这通常发生在项目上传源代码分发 (sdist),然后为给定版本上传特定于平台的 wheel 时:pip 总是更喜欢 wheel 而不是源分发。

如果您想阻止这种情况,您可以在通过 hash-checking mode 安装时指定文件哈希。