pip --no-dependencies参数被忽略?为何仍安装pyarrow构建依赖?
问题解答
为什么pip install --no-dependencies pyarrow==4.0.1仍会出现「Installing build dependencies」?
--no-dependencies参数仅负责跳过运行时依赖的安装(也就是pyarrow运行时需要调用的库),但无法管控构建依赖。构建依赖是编译、打包pyarrow本身必需的工具或基础库,比如setuptools、wheel、编译工具链等。如果pip获取的pyarrow包是源码格式(或缓存的不是预编译好的wheel包),就必须先安装这些构建依赖才能完成编译安装流程,因此会出现该提示。
如何跳过numpy的编译步骤?
你遇到的numpy编译失败,是因为pyarrow构建过程中触发了numpy的源码编译。要跳过这一步,核心是让pip使用预编译的二进制包而非源码包,可尝试以下方法:
- 强制使用所有二进制包,避免源码编译:
执行这条命令后,pip会优先下载预编译的wheel包,不会触发任何源码编译流程:pip install --no-dependencies --only-binary=:all: pyarrow==4.0.1 - 关闭构建隔离,直接使用当前环境已有的依赖来构建(前提是你的环境中已装好必要的构建工具):
pip install --no-dependencies --no-build-isolation pyarrow==4.0.1 - 先升级pip到最新版本,旧版pip对wheel包的支持可能存在缺陷,导致它优先选择源码包:
pip install --upgrade pip
内容的提问来源于stack exchange,提问作者rishai
相关产品推荐
相关产品推荐

