使用pipenv install创建虚拟环境失败:找不到匹配的软件包版本
解决pipenv安装依赖时"No matching distribution found"问题
问题详情
使用pipenv install构建虚拟环境时,持续报错No matching distribution found for aws-lambda-powertools;移除该包后,其他依赖包也会触发相同错误。PyCharm构建时的堆栈跟踪信息如下:
Pipfile.lock (cb83d8)已过期,正在更新至(459cf8)... 正在锁定[packages]依赖... ⠋ 锁定中... 正在构建依赖需求... ⠙ 锁定中... 正在解析依赖... ⠹ 锁定中... ⠸ 锁定中... ⠼ 锁定中...✘ 锁定失败! CRITICAL:pipenv.patched.pip._internal.resolution.resolvelib.factory:找不到满足aws-lambda-powertools需求的版本(可用版本:无) [ResolutionFailure]: 文件 "/Users/n0359100/Library/Python/3.9/lib/python/site-packages/pipenv/resolver.py",第833行,在_main中 [ResolutionFailure]: resolve_packages( [ResolutionFailure]: 文件 "/Users/n0359100/Library/Python/3.9/lib/python/site-packages/pipenv/resolver.py",第781行,在resolve_packages中 [ResolutionFailure]: results, resolver = resolve( [ResolutionFailure]: 文件 "/Users/n0359100/Library/Python/3.9/lib/python/site-packages/pipenv/resolver.py",第760行,在resolve中 [ResolutionFailure]: return resolve_deps( [ResolutionFailure]: 文件 "/Users/n0359100/Library/Python/3.9/lib/python/site-packages/pipenv/utils/resolver.py",第1103行,在resolve_deps中 [ResolutionFailure]: results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps( [ResolutionFailure]: 文件 "/Users/n0359100/Library/Python/3.9/lib/python/site-packages/pipenv/utils/resolver.py",第892行,在actually_resolve_deps中 [ResolutionFailure]: resolver.resolve() [ResolutionFailure]: 文件 "/Users/n0359100/Library/Python/3.9/lib/python/site-packages/pipenv/utils/resolver.py",第687行,在resolve中 [ResolutionFailure]: raise ResolutionFailure(message=str(e)) [pipenv.exceptions.ResolutionFailure]: 警告:无法解析你的依赖。你的子依赖可能存在版本不匹配。 可以使用$ pipenv install --skip-lock绕过该机制,然后运行$ pipenv graph检查情况。 提示:如果是预发布依赖,尝试$ pipenv lock --pre。 ERROR: 找不到匹配aws-lambda-powertools的发行版
解决步骤
- 检查Python版本兼容性:确认当前使用的Python3.9是否在目标依赖的支持范围内(aws-lambda-powertools支持Python3.8及以上版本,3.9符合要求,但需确保pipenv绑定的是正确的Python版本)
- 清理pip缓存:执行
pip cache purge清理本地缓存的包文件,避免缓存损坏导致的查找失败 - 升级pip和pipenv:运行
pip install --upgrade pip pipenv,确保使用最新版本的包管理工具,修复已知的依赖解析bug - 检查PyPI镜像源:若使用了第三方镜像源,可能存在包同步延迟或缺失,切换至官方PyPI源(可临时通过
pipenv install --pypi-mirror https://pypi.org/simple/指定) - 跳过锁文件临时安装:执行
pipenv install --skip-lock先完成依赖安装,再运行pipenv lock尝试生成锁文件 - 校验Pipfile包名:确认Pipfile中包名拼写正确,无多余空格或大小写错误(正确包名为
aws-lambda-powertools) - 重置虚拟环境:删除本地的
.venv文件夹和Pipfile.lock文件,重新执行pipenv install从头构建
内容的提问来源于stack exchange,提问作者AnonymousAlias
相关产品推荐
相关产品推荐

