我正在尝试借助 Azure 管道中的 python 文件执行 DBT 模型。
使用 Python,我想为上次执行管道失败的模型动态创建 dbt 运行命令列表。
任何人都可以指出我们错在哪里吗?
到目前为止我做了什么: 在 dbt 中创建 dbt_Run.py :
from dbt.cli.main import dbtRunner, dbtRunnerResult
dbt = dbtRunner()
cli_args = ["run", "--select", "dim_1.sql"]--list of all failed models
res: dbtRunnerResult = dbt.invoke(cli_args)
for r in res.result:
print(f"{r.status}: {r.message}")`
我可以使用 DBT CLI 执行此操作:py dbt_run.py
但是当我尝试通过 Azure 管道执行相同的操作时,如下所示,遇到错误:
- script: |
pip install --upgrade pip
pip install dbt-snowflake --user
export PATH=$PATH:/to_localfilepath/.local/bin
cd snowflake_demo
- task: PythonScript@0
inputs:
scriptSource: 'filePath'
scriptPath: './dbt_run.py'
错误:py:找不到命令
错误:py:找不到命令
错误消息表明Azure管道无法找到Python解释器。 Python 未安装,或者不在 PATH 中。
检查
PythonScript@0
定义:
您可以提前使用任务 UsePythonVersion@0 下载 Python 版本以在代理上运行,它会默认将 python 添加到 PATH。
- task: UsePythonVersion@0
inputs:
versionSpec: '3.7' # change to your python version
displayName: 'Use specific Python'
此外,
PythonScript@0
是一个单独的任务,你不能将其放入另一个script
任务中,将其用作新任务。 dbt_run.py
还是dbt_Run.py
?区分大小写,请使用正确的名称。