如何在Databricks中通过init.sh脚本从私有Git仓库安装Python包
解决集群初始化脚本从私有GitHub安装Python包失败的问题
问题根源
你在init.sh里用的{{secrets/private-repo/github}}是Databricks Notebook专属的模板语法,bash脚本无法识别解析这个语法,导致TOKEN变量没有正确获取到密钥值,进而pip install命令执行失败。
解决方案
有两种可行的修复方式:
方式1:通过集群配置注入环境变量
- 编辑集群配置,找到环境变量设置项
- 添加环境变量:
GITHUB_TOKEN={{secrets/private-repo/github}} - 修改
init.sh脚本内容:
#!/bin/bash pip install git+https://${GITHUB_TOKEN}@github.com/<path-to-repo>
- 将修改后的脚本重新上传到S3存储桶,重启集群
方式2:在脚本中直接调用Databricks Secrets命令获取密钥
修改init.sh脚本,用databricks secrets get命令直接拉取密钥值:
#!/bin/bash TOKEN=$(databricks secrets get --scope private-repo --key github) pip install git+https://${TOKEN}@github.com/<path-to-repo>
注意:这种方式需要确保集群节点具备调用Databricks Secrets API的权限,默认集群配置一般已包含该权限,若遇权限问题需检查集群服务角色的权限设置。
验证步骤
集群启动后,可在Notebook中执行以下命令验证包是否安装成功:
import <package-name> print(<package-name>.__version__)
内容的提问来源于stack exchange,提问作者satoshi
相关产品推荐
相关产品推荐

