使用Azure管道中的python代码执行DBT模型

问题描述 投票:0回答:1

我正在尝试借助 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:找不到命令

python azure-pipelines-yaml dbt
1个回答
0
投票

错误:py:找不到命令

错误消息表明Azure管道无法找到Python解释器。 Python 未安装,或者不在 PATH 中。

检查

PythonScript@0
定义:

enter image description here

您可以提前使用任务 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
?区分大小写,请使用正确的名称。

© www.soinside.com 2019 - 2024. All rights reserved.