在 VS 代码导入错误中:无法从“集合”导入名称“映射”

新手上路,请多包涵

我正在尝试连接到 Postgress 并通过 Flask 创建文件夹 test.db。当我在终端中运行“python3”时,当我从那里运行“from app import db”时,出现导入错误:

 ImportError: cannot import name 'Mapping' from 'collections' (/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/collections/__init__.py)

我已经尝试了所有的故障排除,但都没有奏效。请指教。这是完整的堆栈:全栈错误

原文由 Mitra 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 643
2 个回答

正如 Mitra 上面所说,更改:

 from collections import Mapping

from collections.abc import Mapping

原文由 Geremia 发布,翻译遵循 CC BY-SA 4.0 许可协议

正如其他人所说,这是由 collections 接口从 Python 3.10 开始的变化引起的。据我所知,到目前为止,有三种方法可以缓解这个问题:

  • 恢复到 Python 3.9。

  • 如果错误发生在第三方库中,请先尝试更新此库( pip install <package> --upgrade )。

  • 手动修补代码。

要修补 ImportError ,请参阅 https://stackoverflow.com/a/69727802/13994294

原文由 Christoph Thiede 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题