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

如何配置dbx execute的pip以安装Azure DevOps私有依赖?

解决dbx execute无法读取集群初始化脚本pip配置的问题

问题根源

dbx execute的运行逻辑和dbx deploy/launch存在本质差异:

  • deploy/launch基于预初始化完成的集群运行,集群启动时已执行初始化脚本完成pip.conf配置与依赖安装
  • execute是在已运行的集群driver节点上临时安装并执行代码,它的pip安装流程不会复用集群初始化脚本设置的配置,因此无法找到Azure DevOps制品源中的Project B

可行解决方案

1. 显式指定pip配置文件路径

运行dbx execute时,通过--env参数传递PIP_CONFIG_FILE环境变量,指向初始化脚本创建的pip.conf实际路径:

dbx execute --cluster-id <你的集群ID> --job-file <任务定义文件路径> --env PIP_CONFIG_FILE=/databricks/driver/pip.conf

注意:路径要和初始化脚本中创建pip.conf的位置完全一致,比如若初始化脚本将文件放在/home/ubuntu/.config/pip/pip.conf,则使用该路径

2. 在任务配置中直接定义制品源与认证

在dbx任务配置文件(如conf/deployment.yml)里,为目标任务添加带认证的PyPI源配置,用Databricks Secrets存储令牌避免明文暴露:

environments:
  default:
    tasks:
      - task_key: project_a_task
        spark_python_task:
          python_file: "src/main.py"
        libraries:
          - whl: "dist/project_a-*.whl"
          - pypi:
              package: "project-b"
              repo: "https://pkgs.dev.azure.com/<你的组织>/<你的项目>/_packaging/<你的制品源>/pypi/simple/"
              auth:
                token: "{{secrets/<你的密钥范围>/ado-pypi-token}}"

3. 在Project A的setup.py中直接指定依赖源

修改Project A的setup.py,将Project B的带令牌制品源地址直接写入依赖列表:

from setuptools import setup

setup(
    name="project-a",
    version="0.1.0",
    install_requires=[
        # 替换为你的Project B制品地址和令牌
        "project-b @ https://<你的ADO令牌>@pkgs.dev.azure.com/<组织>/<项目>/_packaging/<制品源>/pypi/download/project-b/0.1.0/project_b-0.1.0-py3-none-any.whl"
    ],
    # ...其他配置项
)

建议用Databricks Secrets动态注入令牌,不要硬编码在代码中

4. 直接传递pip安装参数给dbx execute

运行命令时,用--pip-install-options指定额外的PyPI源和认证信息:

dbx execute --cluster-id <你的集群ID> --job-file <任务定义文件> --pip-install-options "--extra-index-url https://<你的ADO令牌>@pkgs.dev.azure.com/<组织>/<项目>/_packaging/<制品源>/pypi/simple/"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:25:43