dbx execute install from azure artifacts / private pypi



我想使用dbx执行在azure数据库块集群上运行任务/作业。但是,我不能让它安装我的代码。

关于情况的更多细节:

  • 项目A的setup.py依赖于项目B
  • 项目B也是基于python的,并作为azure devops工件发布
  • 我可以通过在azure数据库集群上使用初始化脚本成功安装A,通过git克隆初始化脚本中的两个项目,然后pip安装-e项目B和A。
  • 当我在init脚本中创建一个pip.conf文件,配置一个令牌来使用我的工件提要
  • 时,它也可以工作。所以dbx部署/启动工作良好,因为我的集群使用初始化脚本
  • 然而,dbx执行总是失败,告诉我它无法找到并安装项目B

有人知道如何配置在dbx执行安装过程中使用的pip吗?不知何故,这似乎忽略了任何与初始化脚本设置的配置。

我搜索了大量的文档,如https://docs.databricks.com/libraries/index.html和https://dbx.readthedocs.io/en/latest/reference/deployment/#advanced-package-dependency-management but with no luck

当我查看dbx包时,似乎没有设置任何pip.conf的选项:(https://github.com/databrickslabs/dbx/blob/main/dbx/commands/execute.py

我在dbx的github repo中也提出了一个问题。https://github.com/databrickslabs/dbx/issues/669他们给我指向这个链接

https://dbx.readthedocs.io/en/latest/guides/general/dependency_management/?h =定制+代表# installing-python-packages-from-custom-pypi-repos

说明如何操作。

简而言之。覆盖init.sh

中/etc/pip.conf中的全局pip.conf
#!/bin/bash
echo """[global]
index-url=https://pypi.org/simple
extra-index-url=https://my.custom.pypi.example.com/simple/
""" > /etc/pip.conf

让它与azure devops一起工作。我创建了一个azure devops个人访问令牌,并调整了extra-index-url,如下所示:

https://<anyname>:<token_with_read_package_permissions>@pkgs.dev.azure.com/<organisation>/<project>/_packaging/<feedname>/pypi/simple/

替换<....>用你的价值观。可以有任何值,因为令牌足以进行身份验证

最新更新