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

如何在pyproject.toml中指定包安装顺序以解决lap依赖numpy问题

解决lap==0.4.0安装时numpy前置依赖报错问题

问题根源

lap==0.4.0的setup.py在执行安装流程的最开始就直接导入numpy做版本校验,而新版pip(比如22.0.3)的依赖安装逻辑和旧版(20.0.2)不同,不会提前安装lap的构建依赖numpy,导致触发ImportError。哪怕你在pyproject.toml里把numpy写在lap前面,Poetry或pip的依赖解析也不会严格按书写顺序执行,所以没用。

可行解决办法

1. 分步手动安装(最稳妥)

先单独装numpy,再装lap,强制保证依赖顺序:

# pip环境下
pip install numpy
pip install lap==0.4.0

# Poetry环境下
poetry add numpy
poetry add lap==0.4.0

2. 关闭pip的构建隔离(pip专属)

用--no-build-isolation参数让pip直接在当前环境构建lap,前提是当前环境已经装了numpy:

pip install lap==0.4.0 --no-build-isolation

3. 临时降级pip到兼容版本

如果必须通过pyproject.toml一键安装,可以先把pip降到20.0.2版本:

pip install pip==20.0.2
# 执行项目安装命令,例如
pip install -e .
# 安装完成后升级回新版pip
pip install --upgrade pip

4. 修改lap的安装逻辑(进阶)

fork lap的仓库,修改它的setup.py:把导入numpy的代码移到setup()函数内部,或者改用正确的构建依赖声明方式。之后用修改后的仓库安装:

pip install git+https://你的fork仓库地址.git@对应commit或标签

关于Poetry依赖顺序的说明

Poetry是基于依赖关系图解析安装顺序的,不会看你在pyproject.toml里的书写顺序。因为lap自己的包配置没正确声明构建阶段需要numpy,Poetry没法提前感知这个需求,所以调整顺序没用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:41:31