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

如何通过Python文件在Databricks安装Azure Artifacts的Python包

能否直接使用pip install命令安装?

可以。不需要走原有Azure Pipeline上传whl到Databricks工作区的流程,但Azure DevOps Artifacts属于私有制品仓库,直接执行无认证参数的pip install会因为权限校验失败无法拉取包,只要配置好对应源的认证信息,就能和安装公共PyPI包一样直接拉取指定版本的自有包。

DBFS存储的Python文件实现安装的具体步骤
  • 提前准备Azure DevOps认证凭据
    生成具备Artifacts读取权限的Azure DevOps个人访问令牌(PAT),令牌过期时间根据业务需求设置即可。禁止将PAT明文硬编码在Python文件中,建议提前将PAT存储到Databricks Secrets中,调用时通过dbutils.secrets.get读取,避免凭据泄露。
  • 在Python代码中调用pip完成安装
    在DBFS存放的Python文件开头,通过subprocess调用当前Python环境的pip,传入带认证信息的私有源地址安装指定版本包即可,示例代码如下:
    import sys
    import subprocess
    
    # 从Databricks Secrets读取配置,替换成你自己的scope和key名
    AZDO_PAT = dbutils.secrets.get(scope="common-secrets", key="azdo-feed-pat")
    AZDO_ORG = "替换成你的Azure DevOps组织名"
    AZDO_FEED = "替换成你的Artifacts源名称"
    # 这里指定要安装的包名+精确版本,比如my-utils==1.2.3
    TARGET_PACKAGE = "替换成你的包名==指定版本号"
    
    # 拼接带认证的私有源地址
    private_pypi_source = f"https://{AZDO_ORG}:{AZDO_PAT}@pkgs.dev.azure.com/{AZDO_ORG}/_packaging/{AZDO_FEED}/pypi/simple/"
    
    # 执行安装
    subprocess.check_call(
        [
            sys.executable,
            "-m",
            "pip",
            "install",
            TARGET_PACKAGE,
            "--index-url",
            private_pypi_source
        ]
    )
    
    # 安装完成后即可正常导入包
    # import 你的包名
    

    如果你的私有包依赖公共PyPI上的第三方包,不需要额外配置,pip会自动从公共源拉取缺失的依赖;如果要求所有包必须从私有源拉取,在安装参数中追加--no-extra-index-url即可。

  • 可选:集群全局预配置(适合高频使用场景)
    如果该私有包需要在集群上所有任务中使用,不需要每次在Python文件里写安装逻辑,可以给集群配置DBFS存储的初始化脚本,提前写入pip全局配置,后续所有任务直接执行pip install 包名==版本即可,无需重复传入认证和源地址。初始化脚本示例:
    #!/bin/bash
    # 写入pip全局配置
    mkdir -p /root/.pip
    cat > /root/.pip/pip.conf << EOF
    [global]
    index-url = https://<你的Azure DevOps组织名>:<提前注入的PAT>@pkgs.dev.azure.com/<你的组织名>/_packaging/<你的源名>/pypi/simple/
    extra-index-url = https://pypi.org/simple/
    EOF
    
注意事项
  • 安装命令必须放在业务逻辑最前,待安装完成后再导入对应包,否则会报模块不存在的错误。
  • 如果是单节点作业集群,安装完包直接使用即可;如果是多节点工作集群,需要确保所有节点都能访问到Azure DevOps的源地址,网络不通的场景下还是需要提前上传whl文件。
  • PAT权限只需要给Artifacts的读取权限即可,不要给多余权限,降低安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:03:19