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

Poetry安装报错ChefBuildError:后端poetry.core.masonry.api不可用

问题概述

使用Poetry 1.4.2创建的自定义Python包,其pyproject.toml中的build-system配置如下:

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

另一个同样基于Poetry 1.4.2配置的项目依赖该自定义包,本地执行poetry install正常,但在Dockerfile构建步骤中执行该命令时出现报错:

ChefBuildError

Backend 'poetry.core.masonry.api' is not available.
可能的原因
  • Docker环境未正确安装poetry-core
    本地环境中,由于之前构建过自定义包或Poetry自身安装已附带适配版本的poetry-core,能正常处理构建依赖。但Docker是全新隔离环境,若构建流程未提前确保poetry-core被安装,或是Poetry处理自定义包构建时无法自动拉取build-system.requires指定的poetry-core,就会出现后端不可用的错误。比如直接用pip安装Poetry时,版本匹配异常可能导致poetry-core缺失或不兼容。

  • 自定义包的依赖引用路径在Docker中无效
    如果依赖项目的pyproject.toml通过本地路径引用自定义包(例如path="../my-custom-package"),但Docker构建上下文未将自定义包代码复制到对应路径,或是路径映射错误,Poetry尝试构建自定义包时,无法读取正确的build-system配置,也无法为构建过程安装所需的poetry-core。

  • Docker构建阶段的依赖安装顺序或缓存问题
    比如先复制pyproject.toml并执行poetry install,之后才复制自定义包代码,此时Poetry会尝试构建不存在的自定义包,或是缓存的旧依赖状态未包含poetry-core,导致构建失败。另外,若Docker使用多层构建,上层构建阶段未继承下层的poetry-core依赖,也会引发该问题。

  • Poetry在Docker环境中的配置或环境变量异常
    例如Docker中的Python环境路径与Poetry预期不一致,导致Poetry无法找到已安装的poetry-core;或是Poetry的虚拟环境配置被修改,使得构建时无法加载必要的依赖包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:25:15