断言错误:视图函数映射正在覆盖现有的端点函数:包装器

问题描述

如果我使用 Flask-JWT-Extended 3.25.0,一切都很好,但是当我使用最新版本时,我收到此错误

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/runpy.py",line 194,in _run_module_as_main
    return _run_code(code,main_globals,None,File "/usr/local/lib/python3.8/runpy.py",line 87,in _run_code
    exec(code,run_globals)
  File "/usr/local/lib/python3.8/site-packages/flask/__main__.py",line 15,in <module>
    main(as_module=True)
  File "/usr/local/lib/python3.8/site-packages/flask/cli.py",line 967,in main
    cli.main(args=sys.argv[1:],prog_name="python -m flask" if as_module else None)
  File "/usr/local/lib/python3.8/site-packages/flask/cli.py",line 586,in main
    return super(FlaskGroup,self).main(*args,**kwargs)
  File "/usr/local/lib/python3.8/site-packages/click/core.py",line 782,in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.8/site-packages/click/core.py",line 1259,in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.8/site-packages/click/core.py",line 1066,in invoke
    return ctx.invoke(self.callback,**ctx.params)
  File "/usr/local/lib/python3.8/site-packages/click/core.py",line 610,in invoke
    return callback(*args,**kwargs)
  File "/usr/local/lib/python3.8/site-packages/click/decorators.py",line 73,in new_func
    return ctx.invoke(f,obj,*args,**kwargs)
  File "/usr/local/lib/python3.8/site-packages/flask/cli.py",line 848,in run_command
    app = dispatchingApp(info.load_app,use_eager_loading=eager_loading)
  File "/usr/local/lib/python3.8/site-packages/flask/cli.py",line 305,in __init__
    self._load_unlocked()
  File "/usr/local/lib/python3.8/site-packages/flask/cli.py",line 330,in _load_unlocked
    self._app = rv = self.loader()
  File "/usr/local/lib/python3.8/site-packages/flask/cli.py",line 392,in load_app
    app = locate_app(self,import_name,raise_if_not_found=False)
  File "/usr/local/lib/python3.8/site-packages/flask/cli.py",line 240,in locate_app
    __import__(module_name)
  File "/workspaces/HejBE/src/app.py",line 10,in <module>
    from api import auth,user,channel,call,connection,expert,accounting  # noqa: F401,E402
  File "/workspaces/HejBE/src/api/user.py",line 23,in <module>
    def get_user_details(user_id):
  File "/usr/local/lib/python3.8/site-packages/flask/app.py",line 1315,in decorator
    self.add_url_rule(rule,endpoint,f,**options)
  File "/usr/local/lib/python3.8/site-packages/flask/app.py",line 98,in wrapper_func
    return f(self,**kwargs)
  File "/usr/local/lib/python3.8/site-packages/flask/app.py",line 1282,in add_url_rule
    raise AssertionError(
AssertionError: View function mapping is overwriting an existing endpoint function: wrapper

名为 wrapper 的函数是否与另一个函数冲突?我的应用程序中没有这样的函数/端点,我使用的其他一些包是:

  • pip
  • 轮子
  • 烧瓶
  • Flask-JWT-Extended==4.0.2
  • sqlAlchemy
  • Flask_sqlAlchemy
  • Flask_Migrate
  • alembic
  • pytz
  • google-api-python-client
  • gevent
  • pytest
  • pytest-cov
  • firebase 管理员
  • psycopg2-二进制
  • boto3

为什么?

解决方法

请务必仔细阅读 4.0.0 重大更改和升级指南:https://flask-jwt-extended.readthedocs.io/en/stable/v4_upgrade_guide/

您可能错过了其中的某些内容,例如仍在使用 @jwt_required 而不是 @jwt_required()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...