【发布时间】:2021-11-21 15:38:19
【问题描述】:
我正在尝试连接到 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)
我已经尝试了所有的故障排除方法,但都没有奏效。请指教。 这是完整的堆栈: full stack error
【问题讨论】:
-
请显示完整的堆栈跟踪。它将指出一些代码认为 3.10(开发版本)中的集合包具有映射的位置。以前没有记录。这可能是一个被其他东西取代的内部问题。
-
env) mk@Mitras-MBP Flasktut % python3 app.py Traceback(最近一次调用最后):文件“/Users/mk/Flasktut/app.py”,第 2 行,在
from flask import Flask, render_template File "/Users/mk/Flasktut/env/lib/python3.10/site-packages/flask/__init__.py", line 14, in 中from jinja2 import escape File "/Users/ mk/Flasktut/env/lib/python3.10/site-packages/jinja2/__init__.py”,第 33 行,在 从 jinja2.environment 导入环境,模板文件“/Users/mk/Flasktut/env/lib /python3.10/site-packages/jinja2/environment.py",第 16 行,在 -
我认为问题出在 test.py 内部:from collections import Mapping
-
解决的问题:from collections.abc import Mapping, MutableMapping
-
Python3.10 似乎改变了这种情况,它提供了一个关于使用新版本软件时发生的有趣事情的间接教训。
标签: python-3.x postgresql sqlite flask sqlalchemy