导入错误:无法从“flask”导入名称“_request_ctx_stack”

问题描述 投票:0回答:1

我是Python和flask框架的新手,当我使用flask时,我收到“ImportError:无法从flask导入名称'_request_ctx_stack'

我尝试执行以下命令

  1. pip install --upgrade setuptools -->执行顺利
  2. pip install --upgrade distribution -->它以给出以下错误结束
Collecting distribute
  Using cached distribute-0.7.3.zip (145 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
         or: setup.py --help [cmd1 cmd2 ...]
         or: setup.py --help-commands
         or: setup.py cmd --help

      error: invalid command 'dist_info'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

首先,当我尝试从 Flask-security 导入 RoleMixin 时,我收到错误如下

Traceback (most recent call last):
  File "E:\Python Practice\Role Based Access Control\script.py", line 1, in <module>
    from app import app 
    ^^^^^^^^^^^^^^^^^^^
  File "E:\Python Practice\Role Based Access Control\app\__init__.py", line 25, in <module>
    from app import routes
    ^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Python Practice\Role Based Access Control\app\routes.py", line 6, in <module>
    from app.models import User, Role
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Python Practice\Role Based Access Control\app\models.py", line 3, in <module>
    from flask_security import RoleMixin
  File "E:\Python Practice\Role Based Access Control\myenv\Lib\site-packages\flask_security\__init__.py", line 15, in <module>
    from .core import (
  File "E:\Python Practice\Role Based Access Control\myenv\Lib\site-packages\flask_security\core.py", line 86, in <module>
    from .totp import Totp
  File "E:\Python Practice\Role Based Access Control\myenv\Lib\site-packages\flask_security\totp.py", line 18, in <module>
    from passlib.pwd import genword
  File "E:\Python Practice\Role Based Access Control\myenv\Lib\site-packages\passlib\pwd.py", line 16, in <module>
    import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'

为了解决这个问题,我使用了“pip install --upgrade setuptools” 执行此命令后,如果运行我的脚本,我得到

ImportError: cannot import name '_request_ctx_stack' from 'flask'
python python-3.x flask
1个回答
0
投票

flask-security 版本与 Flask 不兼容,flask-security 中没有最新版本,替代方案是安装“Flask-Security-Too” 您可以从“flask_security”导入所需的模块

您可以尝试以下链接以获取更多参考 https://flask-security-too.readthedocs.io/en/stable/quickstart.html

© www.soinside.com 2019 - 2024. All rights reserved.