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

使用Poetry与Databricks资产包部署Python Wheel构建失败求助

解决Databricks资产包部署Python Wheel时Poetry构建失败问题

问题背景

使用Databricks资产包开发Python Wheel,配置如下YAML块:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

执行databricks bundle deploy -t dev时出现模糊错误:

Building default...
Error: build failed default, error: exit status 1, output: 

已知信息:

  • databricks bundle validate执行成功
  • 本地环境为Poetry 1.7、Databricks CLI v0.212.0、Python 3.11,与官方教程一致
  • 手动执行poetry build后部署可成功,但保留上述配置块时,部署过程中生成的Wheel文件会消失
  • 需求:实现将文件和Wheel包复制到Databricks远程工作区

排查步骤

  1. 开启Debug日志获取详细错误
    默认错误输出无有效信息,执行部署时添加--debug参数查看完整执行日志:

    databricks bundle deploy -t dev --debug
    

    该命令会输出Poetry构建过程的详细报错,比如依赖缺失、权限问题或路径错误。

  2. 检查Poetry构建产物路径
    Poetry默认将构建生成的Wheel包输出到项目根目录下的dist/文件夹,而YAML配置中path: .会让Databricks CLI在项目根目录查找产物,导致无法识别dist/下的Wheel,甚至在部署清理过程中误删临时生成的文件。

  3. 确认Poetry在非交互式环境的可用性
    Databricks CLI以非交互式方式调用Poetry,可能存在环境变量或路径问题,导致无法找到Poetry命令。可通过指定Poetry绝对路径验证。

解决方案

方案1:修正YAML配置的产物路径与构建命令

修改配置,指定Poetry仅生成Wheel包,并指向正确的产物目录:

artifacts:
  default:
    type: whl
    build: poetry build --format wheel
    path: dist/
  • --format wheel:确保Poetry只生成Wheel格式的产物,避免额外生成tar.gz包
  • path: dist/:告诉Databricks CLI从dist/目录读取构建好的Wheel包

方案2:指定Poetry绝对路径(若CLI无法找到Poetry)

先获取Poetry的绝对路径:

  • Linux/macOS:执行which poetry
  • Windows:执行where poetry

将路径替换到YAML的build命令中:

artifacts:
  default:
    type: whl
    build: /usr/local/bin/poetry build --format wheel
    path: dist/

方案3:固定Poetry构建目录(可选)

在项目的pyproject.toml中添加配置,强制Poetry将产物输出到dist/目录:

[tool.poetry]
build-dir = "dist"

该配置可避免因Poetry版本差异导致的产物路径变化,配合方案1的YAML配置使用更稳定。

验证方法

  1. 执行带Debug参数的部署命令,确认无构建错误:
    databricks bundle deploy -t dev --debug
    
  2. 登录Databricks工作区,检查目标资产位置是否存在部署的Wheel包
  3. 对比手动构建与CLI自动构建的dist/目录产物,确认一致性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:17:31