我正在使用烧瓶创建一个 REST api,当我正要在邮递员上测试它时,我看到了那个错误
Posted
技术标签:
【中文标题】我正在使用烧瓶创建一个 REST api,当我正要在邮递员上测试它时,我看到了那个错误【英文标题】:i was creating a REST api using flask and while i was about to test it on postman I saw that error 【发布时间】:2021-12-18 15:41:09 【问题描述】: File "c:\Users\kally\rest\code\app.py", line 3, in <module>
from flask_jwt import JWT
File "C:\Users\kally\AppData\Roaming\Python\Python310\site-packages\flask_jwt\__init__.py", line 16, in <module>
import jwt
File "C:\Users\kally\AppData\Roaming\Python\Python310\site-packages\jwt\__init__.py", line 19, in <module>
from .api_jwt import (
File "C:\Users\kally\AppData\Roaming\Python\Python310\site-packages\jwt\api_jwt.py", line 5, in <module>
from collections import Mapping
ImportError: cannot import name 'Mapping' from 'collections' (C:\Program Files\Python310\lib\collections\__init__.py)
【问题讨论】:
docs.python.org/3/library/collections.html 3.10 ... 集合中没有映射。 Mapping 在 3.3 中移至 collections.abc.mapping 并从 3.9 开始弃用,但直到 3.8 它仍然可见。 【参考方案1】:扩展我的评论:
与described in the documentation 一样,Mapping
在 v3.3 中已移至 collections.abc
,并且自 v3.9 起已弃用(但在 v3.8 之前仍保持向后兼容性可见)。
您的错误源于使用过时的导入 - 您需要升级使用过的 pyjwt/jwt
- 尤其是它的 /api_jwt.py
。当前版本
https://github.com/jpadilla/pyjwt/blob/master/jwt/api_jwt.py
使用自 2018 年 11 月 this commit 以来的正确导入。
【讨论】:
老实说我不明白你能不能像向新手解释一样解释它 @gabrielkalango 您在导入时使用的是旧软件。这些旧的东西使用语法来导入不再起作用的 Mapping 类(自 3.9 起)。您需要更新导入的模块:how-do-i-update-a-python-package - 这可能会或可能不会破坏其他东西,所以要小心【参考方案2】:那个错误
from collections import Mapping
ImportError: cannot import name 'Mapping' from 'collections'
是在告诉你,collection
包中没有 Mapping
。请查看doc
【讨论】:
以上是关于我正在使用烧瓶创建一个 REST api,当我正要在邮递员上测试它时,我看到了那个错误的主要内容,如果未能解决你的问题,请参考以下文章
将 Flask Restless API 连接到 Admin-on-rest (React)