在DBT中,我无法从’dbt.exceptions’导入名为’RuntimeException’的名称。

huangapple go评论182阅读模式
英文:

In DBT I cannot import name 'RuntimeException' from 'dbt.exceptions'

问题

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

  1. conda create --name dbt-athena python=3.10
  2. conda activate dbt-athena
  3. conda install -c conda-forge dbt-athena-adapter

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

  1. dbt --version
  2. Core:
  3. - installed: 1.5.1
  4. - latest: 1.5.2 - Update available!

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

  1. dbt init gapminder
  2. 15:08:31 Running with dbt=1.5.1
  3. The profile gapminder already exists in /home/ec2-user/.dbt/profiles.yml. Continue and overwrite it? [y/N]: y
  4. Which database would you like to use?
  5. [1] athena
  6. (Don't see the one you want? https://docs.getdbt.com/docs/available-adapters)

但是我遇到了这个错误:

  1. 15:08:55 Encountered an error:
  2. cannot import name 'RuntimeException' from 'dbt.exceptions' (/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/exceptions.py)
  3. 15:08:55 Traceback (most recent call last):
  4. File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/cli/requires.py", line 86, in wrapper
  5. result, success = func(*args, **kwargs)
  6. File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/cli/requires.py", line 71, in wrapper
  7. return func(*args, **kwargs)
  8. File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/cli/main.py", line 457, in init
  9. results = task.run()
  10. File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/task/init.py", line 305, in run
  11. self.create_profile_from_target(adapter, profile_name=project_name)
  12. File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/task/init.py", line 173, in create_profile_from_target
  13. load_plugin(adapter)
  14. File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/factory.py", line 202, in load_plugin
  15. return FACTORY.load_plugin(name)
  16. File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/factory.py", line 57, in load_plugin
  17. mod: Any = import_module("." + name, "dbt.adapters")
  18. File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/importlib/__init__.py", line 126, in import_module
  19. return _bootstrap._gcd_import(name[level:], package, level)
  20. File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  21. File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  22. File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  23. File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  24. File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  25. File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  26. File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/athena/__init__.py", line 1, in <module>
  27. from dbt.adapters.athena.connections import AthenaConnectionManager
  28. File "/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/athena/connections.py", line 22, in <module>
  29. from dbt.exceptions import RuntimeException, FailedToConnectException
  30. 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文件:

  1. gapminder:
  2. outputs:
  3. dev:
  4. aws_profile_name: ec2-user
  5. database: awsdatacatalog
  6. region_name: us-east-1
  7. s3_data_dir: s3://mybucket/results/
  8. s3_staging_dir: s3://mybucket/results/
  9. schema: myschema
  10. threads: 1
  11. type: athena
  12. target: dev

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

英文:

I tried to setup dbt on a EC2 instance, creating an conda environment:

  1. conda create --name dbt-athena python=3.10
  2. conda activate dbt-athena
  3. conda install -c conda-forge dbt-athena-adapter

Then I see dbt is installed correctly:

  1. dbt --version
  2. Core:
  3. - installed: 1.5.1
  4. - latest: 1.5.2 - Update available!

So I tried to initialize a project:

  1. dbt init gapminder
  2. 15:08:31 Running with dbt=1.5.1
  3. The profile gapminder already exists in /home/ec2-user/.dbt/profiles.yml. Continue and overwrite it? [y/N]: y
  4. Which database would you like to use?
  5. [1] athena
  6. (Don&#39;t see the one you want? https://docs.getdbt.com/docs/available-adapters)

But I get this error:

  1. 15:08:55 Encountered an error:
  2. cannot import name &#39;RuntimeException&#39; from &#39;dbt.exceptions&#39; (/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/exceptions.py)
  3. 15:08:55 Traceback (most recent call last):
  4. File &quot;/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/cli/requires.py&quot;, line 86, in wrapper
  5. result, success = func(*args, **kwargs)
  6. File &quot;/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/cli/requires.py&quot;, line 71, in wrapper
  7. return func(*args, **kwargs)
  8. File &quot;/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/cli/main.py&quot;, line 457, in init
  9. results = task.run()
  10. File &quot;/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/task/init.py&quot;, line 305, in run
  11. self.create_profile_from_target(adapter, profile_name=project_name)
  12. File &quot;/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/task/init.py&quot;, line 173, in create_profile_from_target
  13. load_plugin(adapter)
  14. File &quot;/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/factory.py&quot;, line 202, in load_plugin
  15. return FACTORY.load_plugin(name)
  16. File &quot;/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/factory.py&quot;, line 57, in load_plugin
  17. mod: Any = import_module(&quot;.&quot; + name, &quot;dbt.adapters&quot;)
  18. File &quot;/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/importlib/__init__.py&quot;, line 126, in import_module
  19. return _bootstrap._gcd_import(name[level:], package, level)
  20. File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1050, in _gcd_import
  21. File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1027, in _find_and_load
  22. File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1006, in _find_and_load_unlocked
  23. File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 688, in _load_unlocked
  24. File &quot;&lt;frozen importlib._bootstrap_external&gt;&quot;, line 883, in exec_module
  25. File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 241, in _call_with_frames_removed
  26. File &quot;/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/athena/__init__.py&quot;, line 1, in &lt;module&gt;
  27. from dbt.adapters.athena.connections import AthenaConnectionManager
  28. File &quot;/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/adapters/athena/connections.py&quot;, line 22, in &lt;module&gt;
  29. from dbt.exceptions import RuntimeException, FailedToConnectException
  30. ImportError: cannot import name &#39;RuntimeException&#39; from &#39;dbt.exceptions&#39; (/home/ec2-user/miniconda3/envs/dbt-athena/lib/python3.10/site-packages/dbt/exceptions.py)

I checked up my profiles.yml file:

  1. gapminder:
  2. outputs:
  3. dev:
  4. aws_profile_name: ec2-user
  5. database: awsdatacatalog
  6. region_name: us-east-1
  7. s3_data_dir: s3://mybucket/results/
  8. s3_staging_dir: s3://mybucket/results/
  9. schema: myschema
  10. threads: 1
  11. type: athena
  12. target: dev

So I can't create this project. Please, any help will be greatly appreciated.

答案1

得分: 1

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

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

  1. pip install --upgrade dbt-snowflake
英文:

This could be a dependency or utility version mismatch issue.

I got the same error after I upgraded dbt to v 1.5 or higher. However, the issue went away once I updated the snowflake adaptor:

pip install --upgrade dbt-snowflake

huangapple
  • 本文由 发表于 2023年6月29日 23:26:35
  • 转载请务必保留本文链接:https://go.coder-hub.com/76582502.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定