【问题标题】:ImportError: "flask_sqlalchemy" could not be resolvedImportError:“flask_sqlalchemy”无法解决
【发布时间】:2020-11-24 07:16:40
【问题描述】:

即使安装了flask-sqlachemy,我也无法导入flask_sqlalchemy

from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy 
 # ^this line shows error ImportError: "flask_sqlalchemy" could not be resolved

app = Flask(__name__)
@app.route('/')
def index():
    return render_template('index.html')

我没有使用任何虚拟环境,flask-sqlalchemy 显示已经安装

(base) sachin@sachin:~/Coding/flask/blog$ pip install Flask-SQLAlchemy
Requirement already satisfied: Flask-SQLAlchemy in /home/sachin/anaconda3/lib/python3.8/site-packages (2.4.4)
Requirement already satisfied: SQLAlchemy>=0.8.0 in /home/sachin/anaconda3/lib/python3.8/site-packages (from Flask-SQLAlchemy) (1.3.20)
Requirement already satisfied: Flask>=0.10 in /home/sachin/anaconda3/lib/python3.8/site-packages (from Flask-SQLAlchemy) (1.1.2)
Requirement already satisfied: Jinja2>=2.10.1 in /home/sachin/anaconda3/lib/python3.8/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (2.11.2)
Requirement already satisfied: itsdangerous>=0.24 in /home/sachin/anaconda3/lib/python3.8/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (1.1.0)
Requirement already satisfied: click>=5.1 in /home/sachin/anaconda3/lib/python3.8/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (7.1.2)
Requirement already satisfied: Werkzeug>=0.15 in /home/sachin/anaconda3/lib/python3.8/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (1.0.1)
Requirement already satisfied: MarkupSafe>=0.23 in /home/sachin/anaconda3/lib/python3.8/site-packages (from Jinja2>=2.10.1->Flask>=0.10->Flask-SQLAlchemy) (1.1.1)

pip freeze 显示它已经安装 -

Flask==1.1.2
Flask-SQLAlchemy==2.4.4

【问题讨论】:

  • 您可能正在使用系统版本的 python 而不是 Anaconda 运行。除了您运行的 Python 解释器与您预期的不同之外,没有其他解释
  • 试试which python3看看它是否指向anaconda
  • 是的,它指向 anaconda3 .... /home/sachin/anaconda3/bin/python3 我现在该怎么办?
  • 我刚刚在 vscode 中遇到了这个错误,我正在运行 WSL 工作区。我能够通过选择系统 python 然后回到 python3 来解决。
  • 如果您使用的是 pipenv,请尝试pipenv install Flask-SQLAlchemy! & 检查 Pipfile 是否添加了依赖项。曾经遇到过这样的问题。奇怪的是,当我重新启动 PC 时,它就起作用了。

标签: python anaconda


【解决方案1】:

我有同样的错误。通过在 VS Code 中执行以下操作来更改我的系统 python: 在视图菜单下选择“显示命令托盘”。然后您可以从命令面板中选择的命令之一是“Python:选择解释器”。 选择此选项将允许您选择要使用的 python 版本。

【讨论】:

    【解决方案2】:

    这篇文章已经很老了,但我找到了一个不同的解决方案,可以帮助其他人。对我来说,问题是我的 IDE/Python (venv)。我正在使用 Visual Studio 版本。 1.57.1​​ 目前在 Windows 10 上。

    1. 打开可视化代码。
    2. 转到工具栏上的“查看”。
    3. 单击“命令面板...”(或在 Windows 上按 CTRL + SHIFT + P)。
    4. 搜索:“Python 选择解释器”。
    5. 单击:“输入解释器路径...”,然后单击“查找...”。
    6. 转到您的 (venv) 脚本文件夹:project_folder/venv/Scripts
    7. project_folder/venv/Scripts 文件夹中选择python.exepythonw.exe

    就是这样。

    Flask-SQLAlchemy 安装在我的虚拟环境 (venv) 中。但是我的 VSCode 是使用系统/PC Python 解释器来查找包而不是 venv。

    希望这对其他人有所帮助。

    【讨论】:

    • 嗨,我的虚拟环境中什至没有脚本文件夹。这很奇怪。不知道从那以后是否有更新。你知道它现在可能在哪里吗?
    • 嗨@Connor,我不太清楚,但我建议你重新制作venv。我是这样做的:flask.palletsprojects.com/en/2.0.x/installation 在 Windows 上创建一个 venv> mkdir myproject > cd myproject > py -3 -m venv venv 在 Windows 上激活您的venv> venv\Scripts\activate
    【解决方案3】:

    这适用于不使用 Anaconda 的人(我遇到了这个问题,我通过这种方式解决了)

    您的venv 可能不正确。您是否从另一个目录复制粘贴了您的venv

    venv 保存路径信息,所以当你运行env\Scripts\activate 时,venv 认为它在不同的目录中。

    它会将软件包安装在 OLD 目录中。确保为您创建的每个应用生成一个新的py -m venv env,而不是复制粘贴。

    解决方法是删除当前的venv 目录,然后再次运行py -m venv env 命令。然后这些包将安装在当前的venv

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,这对我有用:

      在 cmd 中,cd 到您的项目文件夹,(对我来说,我必须激活 venv,所以它显示 (env) C:\ etc\etc>)

      然后在这里安装:

      pip3 install flask-SQLAlchemy
      

      由于某种原因,这个菜鸟尝试了 12 次,但结果是我的站点文件夹中没有 sqla 文件,并且它一直显示安装已经发生在我的 python39 文件夹中。

      【讨论】:

        【解决方案5】:

        我遇到了同样的问题,但是当我在视图选项卡的命令面板下更改为 Python Interpreter 时,它起作用了。如果您认为您已经安装了所有必需的软件包并且它不起作用,那么一定要试试这个。

        【讨论】:

          【解决方案6】:

          我注意到的一件事是,如果我将 python 解释器从命令调色板(ctrl+shift+p) 更改为我的虚拟环境,它就不起作用。首先我尝试了命令,

          py -3 -m pip install flask-SQLALchemy
          

          代替上面的命令,我使用升级pip,

          python -m pip install --upgrade pip
          

          然后我尝试使用以下导入 SQLAlchemy。

          python -m pip install flask-SQLALchemy
          

          它对我有用。

          【讨论】:

            【解决方案7】:

            当您完成更改后,我的意思是更改您的 python 解释器,删除您的环境或重新创建安装包。请关闭您的app.py 文件并重新打开它。有时它仍然会给出您的错误。

            【讨论】:

              【解决方案8】:

              对于任何寻找更新答案的人。我找不到脚本文件夹。在我的 ubuntu 机器上,我做了这个(在 vscode 中):

              1. ctrl + shft + p
              2. 搜索选择python解释器
              3. 输入解释器路径
              4. 导航到 your-app/venv/python3
              5. 选择python3

              这解决了导入问题。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2020-08-05
                • 1970-01-01
                • 1970-01-01
                • 2016-07-04
                • 1970-01-01
                • 2022-11-19
                • 1970-01-01
                • 2021-07-19
                相关资源
                最近更新 更多