首页 > 解决方案 > 如果要求没有上传二进制文件,如何安装 Python 依赖项

问题描述

我在使用 Pipenv 和 Pip 工具时无法锁定/安装依赖项。

问题:

我的依赖项之一是 NewRelic,它在其实现中没有将特定版本固定到 Protobuf 库。

当我锁定依赖项,生成带有哈希的 aPipfile.lock甚至 a时,它将Protobuf固定到 3.12.1,这是截至今天的最新版本。requirements.txt

发生这种情况,出于某种未知原因,Protobuf 没有与我的环境兼容的版本,并且安装失败。

如何在我的 Pipfile 中为 Protobuf 指定一个版本,或者让锁解析最新的兼容版本?

编辑:还有一个关于 Protobuf 问题的未解决的GitHub问题。

标签: pythonpippipenv

解决方案


正如 Albert 所建议的那样,解决方案是将失败的库显式添加到需求文件中,固定到与第一个库的版本兼容并且在 PyPI 上确实有 sdist 的版本。

Pip 足够聪明,可以看到该库已经存在,并且在解决子需求时不会再次获取它,从而解决了问题。


推荐阅读