You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pip安装scipy时如何将外部系统依赖库添加至搜索路径

核心原因

你之前使用--global-option报错,以及openblas查找失败的核心逻辑如下:

  • --global-option参数会强制pip禁用所有预编译wheel包,强制走全源码构建流程,且参数仅会传递给scipy本身的构建脚本,不会作用在前置构建依赖的安装阶段,直接导致第一步Installing build dependencies阶段参数不兼容报错
  • scipy构建阶段的链接器默认扫描系统库路径和Python安装路径下的lib目录,不会主动识别Guix用户Profile下的私有库路径,因此找不到你已经安装的openblas
解决方案

方案1:通过环境变量指定搜索路径(优先推荐,不会影响wheel安装逻辑)

安装前先把Guix的库、头文件、pkg-config路径注入到构建环境的对应变量中,不要附加--global-option类参数,直接正常安装即可:

# 注入编译、链接、pkg-config搜索路径
export LDFLAGS="-L$HOME/.guix-profile/lib ${LDFLAGS}"
export CFLAGS="-I$HOME/.guix-profile/include ${CFLAGS}"
export PKG_CONFIG_PATH="$HOME/.guix-profile/lib/pkgconfig:${PKG_CONFIG_PATH}"
# 可选:配置运行时库搜索路径,避免安装后导入scipy时报找不到openblas
export LD_LIBRARY_PATH="$HOME/.guix-profile/lib:${LD_LIBRARY_PATH}"

# 执行常规安装
python3 -m pip install --user scipy

如果上述操作后仍然提示找不到openblas,可以额外添加scipy构建流程专门识别的环境变量,直接指定openblas安装根目录:

export OPENBLAS="$HOME/.guix-profile"
python3 -m pip install --user scipy

方案2:新版pip用config-settings传构建参数(不触发wheel禁用)

如果你使用的是22.2及以上版本的pip,不要使用已经废弃的--global-option,改用--config-settings向构建后端传递参数,不会强制禁用预编译wheel:

python3 -m pip install --user scipy \
  --config-settings="compile-args=-L$HOME/.guix-profile/lib" \
  --config-settings="link-args=-L$HOME/.guix-profile/lib"

方案3:关闭构建隔离适配Guix环境

如果前两种方案仍然在构建依赖阶段报错,可以临时关闭pip的隔离构建机制,直接复用你当前Guix环境中已经安装的构建依赖,避免隔离环境无法读取用户路径的问题:

  • 先通过Guix安装scipy构建所需的前置依赖:guix install python-setuptools python-wheel cython openblas pkg-config
  • 提前配置好方案1中提到的所有环境变量
  • 执行无隔离安装命令:
python3 -m pip install --user --no-build-isolation scipy

内容的提问来源于stack exchange,提问作者bbb ee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.21 16:16:02