Python 3.11升级后Pipenv特定目录安装哈希匹配失败
Pipenv升级Python 3.11后哈希不匹配问题
问题描述
使用pipenv将虚拟环境从Python 3.9升级到3.11后,执行pipenv install时出现哈希不匹配错误,但将Pipfile复制到其他目录后可正常完成安装。已尝试以下操作但均未解决:
- 删除原目录的
Pipfile.lock - 移动整个项目目录
- 执行
pipenv update - 手动删除虚拟环境
两个目录生成的Pipfile.lock仅存在一处差异:故障目录中six和python-dateutil的标记多排除了Python 3.3:
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'"
正常目录的标记为:
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'"
即使手动移除该排除项,问题仍存在。怀疑是Python或pip版本差异导致,但所有命令均在同一会话、同一用户下执行,无法定位具体原因。
报错信息
[pipenv.exceptions.InstallError]: ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them. [pipenv.exceptions.InstallError]: certifi==2024.8.30 from https://www.piwheels.org/simple/certifi/certifi-2024.8.30-py3-none-any.whl#sha256=3dffae5ce57c3934b457066e04f14270151dd908412a601a3abb554c5acff9d4 (from -r /tmp/pipenv-d3ppdela-requirements/pipenv-qz_5cdgh-hashed-reqs.txt (line 2)): [pipenv.exceptions.InstallError]: Expected sha256 922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8 [pipenv.exceptions.InstallError]: Expected or bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9 [pipenv.exceptions.InstallError]: Got 3dffae5ce57c3934b457066e04f14270151dd908412a601a3abb554c5acff9d4
环境:64位Raspberry Pi OS Bookworm,Python 3.11
解决建议
- 强制清理缓存并重新生成锁文件:
执行以下命令,彻底清理pipenv缓存并重新生成适配Python 3.11的锁文件:pipenv install --clear --skip-lock pipenv lock --clear pipenv install - 删除原目录隐藏配置:
检查原项目目录下是否存在.pipenv隐藏文件夹,删除后再执行pipenv install,避免旧配置干扰。 - 切换PyPI源:
报错显示包来自piwheels,可能该源的包哈希与Pipfile.lock中记录的不一致。修改Pipfile的源为官方PyPI:
保存后重新执行[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi"pipenv install。 - 升级pipenv版本:
旧版pipenv可能存在Python版本切换后的兼容性问题,执行以下命令升级到最新版:pip install --upgrade pipenv
内容的提问来源于stack exchange,提问作者guerda
相关产品推荐
相关产品推荐

