【问题标题】:Pipfile Hash CreationPipfile 哈希创建
【发布时间】:2021-02-21 21:22:45
【问题描述】:

我遇到了 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"
        }
    }
}

【问题讨论】:

  • 你能不能edit 使用你的 Pipfile(至少有那个“特定依赖”)并指定 pipenv 版本。
  • @GinoMempin 我已经编辑了帖子。

标签: python python-3.x hash dependencies pipenv


【解决方案1】:

试试clearing your pipenv cache:

确保您的依赖项确实解决了。如果您确信它们是,您可能需要清除解析器缓存。运行以下命令:

pipenv lock --clear

然后再试一次。

如果这不起作用,请尝试手动删除整个缓存目录。它通常是以下位置之一:

  • ~/Library/Caches/pipenv (macOS)
  • %LOCALAPPDATA%\pipenv\pipenv\Cache (Windows)
  • ~/.cache/pipenv(其他操作系统)

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

清除缓存并重新锁定将导致 pipenv 缓存未命中并重新获取以 sha256 哈希结尾的包 URL,并按照您的希望将它们写入Pipfile.lock,并防止您再次遇到问题.

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 疯狂的是 pipenv 2020.11.15 正在将 md5 哈希添加到锁定文件中,然后错误地认为它们在那里。
    • 我刚刚尝试从 pipenv 的主版本进行安装,并且 PR github.com/pypa/pipenv/pull/4519 修复了此行为运行良好,因此下一个版本应该可以再次运行。 (您需要真正清除缓存)
    猜你喜欢
    • 2013-12-20
    • 2011-09-20
    • 2015-10-06
    • 2011-04-20
    • 2021-04-03
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多