Pipfile 哈希创建

Pipfile Hash Creation

我在使用 Pipenv 时遇到问题。我 运行 pipenv install --dev 为了从我的项目中的 Pipfile 安装一些依赖项。 运行 执行此命令后,Pipenv 会为特定依赖项生成 MD5 哈希值。错误是说不支持 MD5 但仍会生成它。我没有在我的本地机器或任何配置文件中设置任何配置。我似乎无法查明这个问题。非常感谢任何帮助。

[pipenv.exceptions.InstallError]: pip: error: Allowed hash algorithms for --hash are sha256, sha384, sha512.

Pipfile.lock

{
    "_meta": {
        "hash": {
            "sha256": "7e0f1d75f7df19f9500f55bd2f1da163cb4a8c7f485aab61c521d70e3865a507"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.6"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "certain-dependency": {
            "hashes": [
                "md5:8faf2e4ff85c34b5d0c000c017f81f52",
                "md5:1508a7f05b17d292f7890b8c58a451cf",
   ],
            "version": "==11.10.20"
        }
    }
}

我 运行 在最近的 pipenv 版本(2020.11.4)中遇到了同样的错误,似乎已经为下一个版本设置了修复(参见 https://github.com/pypa/pipenv/pull/4519)。但与此同时,对我有用的只是回滚到旧版本的 pipenv (2020.8.13)。

尝试 clearing your pipenv cache:

Make sure your dependencies actually do resolve. If you’re confident they are, you may need to clear your resolver cache. Run the following command:

pipenv lock --clear

and try again.

If this does not work, try manually deleting the whole cache directory. It is usually one of the following locations:

  • ~/Library/Caches/pipenv (macOS)
  • %LOCALAPPDATA%\pipenv\pipenv\Cache (Windows)
  • ~/.cache/pipenv (other operating systems)

虽然当前版本的 pipenv 只接受 sha256 哈希值,但它会从缓存中加载包 URL,并将这些缓存的 URL 哈希值写入 Pipfile.lock。如果这些缓存的哈希值是来自先前安装的包的 md5 哈希值,pipenv 将按原样使用这些值 without verifying,它们是 sha256/FAVORITE_HASH.

清除缓存并重新锁定将导致 pipenv 缓存未命中并重新获取以 sha256 哈希结尾的包 URL,并将它们写入 Pipfile.lock,如您所愿,并防止您 运行 又进入issue.