python - 如果要求没有上传二进制文件,如何安装 Python 依赖项
问题描述
我在使用 Pipenv 和 Pip 工具时无法锁定/安装依赖项。
问题:
我的依赖项之一是 NewRelic,它在其实现中没有将特定版本固定到 Protobuf 库。
当我锁定依赖项,生成带有哈希的 aPipfile.lock
甚至 a时,它将Protobuf固定到 3.12.1,这是截至今天的最新版本。requirements.txt
发生这种情况,出于某种未知原因,Protobuf 没有与我的环境兼容的版本,并且安装失败。
如何在我的 Pipfile 中为 Protobuf 指定一个版本,或者让锁解析最新的兼容版本?
编辑:还有一个关于 Protobuf 问题的未解决的GitHub问题。
解决方案
正如 Albert 所建议的那样,解决方案是将失败的库显式添加到需求文件中,固定到与第一个库的版本兼容并且在 PyPI 上确实有 sdist 的版本。
Pip 足够聪明,可以看到该库已经存在,并且在解决子需求时不会再次获取它,从而解决了问题。
推荐阅读
- php - PHP/MySQL:获取范围而不是数组?
- css - 如何修复此动画故障?
- xml - 如何为 MWS 上的产品 Feed 提交创建 Item 节点?
- linux - 如何从所有文件中替换 '>> $log_file 2>&1'
- vue.js - Vue.js Axios responseType blob 或 json 对象
- gnuplot - Gnuplot - 脚本内部错误,但是当我正常编写它时它可以工作,但脚本没有
- php - PHP生成无效字符串
- date - 在招摇 UI 中遇到日期时间问题
- clarifai - Clarifai Python gRPC 接口的文档(不是示例)
- r - sf 对象是否有 .RData 等价物?