首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pip安装--没有-deps--无构建隔离的-r requirements.txt仍然使用未列出的依赖项。

pip安装--没有-deps--无构建隔离的-r requirements.txt仍然使用未列出的依赖项。
EN

Stack Overflow用户
提问于 2021-02-12 01:19:36
回答 1查看 752关注 0票数 1

我在pip install --no-deps --no-build-isolation -r requirements.txt上遇到了一个我意想不到的问题。

作为使用pip (使用其他包管理器,例如poetry )绕过Python地狱的一种方法,我们希望冻结我们的依赖关系,并安装我们所需要的各种包的确切版本。

在依赖项列表中包括:

代码语言:javascript
复制
fastparquet==0.4.1
...
numpy==1.17.4

前者取决于后者。

为了让fastparquet使用我们想要的numpy版本,我认为pip install --no-deps --no-build-isolation -r requirements.txt可以工作。--no-deps将确保列出的包的依赖关系不会被pip删除,而--no-build-isolation将确保我们不会因为pip的构建隔离行为而使用更新版本的numpy构建fastparquet

运行pip install ...是没有错误的。但是,在运行我的代码时,在使用fastparquet时仍然会遇到这个问题

代码语言:javascript
复制
ValueError: numpy.ndarray size changed, may indicate binary incompatibility.
Expected 88 from C header, got 80 from PyObject

此错误似乎是一个版本兼容性问题

通过fastparquet==0.4.1重新安装pip install --upgrade --force-reinstall解决了这个问题,这意味着,第一次,pip仍然在使用更新版本的numpy

注意,我们是从一个干净的Python虚拟环境开始的,既没有安装numpy,也没有安装fastparquet

有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-10-18 14:12:29

我觉得你的分析是有道理的。构建环境和运行时环境是分开的。在构建快速拼板时,系统不知道安装了哪个numpy,因此它只是根据其构建设置来提取最新的numpy。您可能需要安装numpy之前,紧固件和使用--不构建-隔离选项。

您是否尝试过将该选项添加到requirements.txt中?fastparquet==0.4.1,--无构建隔离-此工作于大于20.2.2的pip版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66165241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档