在 DBT 中,我无法从“dbt.exceptions”导入名称“RuntimeException”

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

我尝试在 EC2 实例上设置 dbt,创建 conda 环境:

conda create --name dbt-athena python=3.10
conda activate dbt-athena
conda install -c conda-forge dbt-athena-adapter

然后我看到 dbt 已正确安装:

dbt --version
Core:
  - installed: 1.5.1
  - latest:    1.5.2 - Update available!

所以我尝试初始化一个项目:

dbt init gapminder
15:08:31  Running with dbt=1.5.1
The profile gapminder already exists in /home/ec2-user/.dbt/profiles.yml. Continue and overwrite it? [y/N]: y
Which database would you like to use?
[1] athena

(Don't see the one you want? https://docs.getdbt.com/docs/available-adapters)

但我收到此错误:

15:08:55  Encountered an error:
cannot import name 'RuntimeException' from 'dbt.exceptions' (/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/exceptions.py)
15:08:55  Traceback (most recent call last):
  File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/cli/requires.py", line 86, in wrapper
    result, success = func(*args, **kwargs)
  File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/cli/requires.py", line 71, in wrapper
    return func(*args, **kwargs)
  File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/cli/main.py", line 457, in init
    results = task.run()
  File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/task/init.py", line 305, in run
    self.create_profile_from_target(adapter, profile_name=project_name)
  File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/task/init.py", line 173, in create_profile_from_target
    load_plugin(adapter)
  File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/factory.py", line 202, in load_plugin
    return FACTORY.load_plugin(name)
  File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/factory.py", line 57, in load_plugin
    mod: Any = import_module("." + name, "dbt.adapters")
  File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/athena/__init__.py", line 1, in <module>
    from dbt.adapters.athena.connections import AthenaConnectionManager
  File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/athena/connections.py", line 22, in <module>
    from dbt.exceptions import RuntimeException, FailedToConnectException
ImportError: cannot import name 'RuntimeException' from 'dbt.exceptions' (/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/exceptions.py)

我检查了我的profiles.yml 文件:

gapminder:
  outputs:
    dev:
      aws_profile_name: ec2-user
      database: awsdatacatalog
      region_name: us-east-1
      s3_data_dir: s3://mybucket/results/
      s3_staging_dir: s3://mybucket/results/
      schema: myschema
      threads: 1
      type: athena
  target: dev

所以我无法创建这个项目。请,任何帮助将不胜感激。

python amazon-web-services amazon-athena dbt
1个回答
0
投票

这可能是依赖项或实用程序版本不匹配问题。

将 dbt 升级到 v 1.5 或更高版本后,我遇到了同样的错误。然而,一旦我更新了雪花适配器,问题就消失了:

pip install --升级 dbt-snowflake

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