如果要求没有上传二进制文件,如何安装 Python 依赖项
How to install Python dependency if requirement doesn't have binaries uploaded
我在使用 Pipenv 和 Pip 工具时遇到 locking/installing 依赖项问题。
问题:
我的一个依赖项是 NewRelic,它在 implementation 中没有将特定版本固定到 Protobuf 库。
当我锁定依赖项时,生成 Pipfile.lock
甚至 requirements.txt
和散列,它将 Protobuf 固定到 3.12.1,截至今天,这是最新的版本。
碰巧,出于某种未知原因,Protobuf 没有与我的环境兼容的版本,因此安装失败。
我如何在我的 Pipfile 中指定 Protobuf 的版本或使锁解析最新的 兼容 版本?
编辑:还有一个未解决的GitHub issue关于Protobuf问题。
正如 Albert 所建议的,解决方案是将失败的库显式添加到需求文件中,固定到与第一个库的版本兼容并且在 PyPI 上有 sdist 的版本。
pip 很聪明,在解析子需求时,可以看到库已经存在,不会再去取,解决问题。
我在使用 Pipenv 和 Pip 工具时遇到 locking/installing 依赖项问题。
问题:
我的一个依赖项是 NewRelic,它在 implementation 中没有将特定版本固定到 Protobuf 库。
当我锁定依赖项时,生成 Pipfile.lock
甚至 requirements.txt
和散列,它将 Protobuf 固定到 3.12.1,截至今天,这是最新的版本。
碰巧,出于某种未知原因,Protobuf 没有与我的环境兼容的版本,因此安装失败。
我如何在我的 Pipfile 中指定 Protobuf 的版本或使锁解析最新的 兼容 版本?
编辑:还有一个未解决的GitHub issue关于Protobuf问题。
正如 Albert 所建议的,解决方案是将失败的库显式添加到需求文件中,固定到与第一个库的版本兼容并且在 PyPI 上有 sdist 的版本。
pip 很聪明,在解析子需求时,可以看到库已经存在,不会再去取,解决问题。