ImportError:未安装带有两个Python版本的名为“ flask_sqlalchemy”的模块

时间:2018-07-31 18:46:41

标签: python sqlalchemy flask-sqlalchemy

尝试运行具有以下导入内容的文件:

from flask_sqlalchemy import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker

收到以下错误:

ImportError: No module named 'flask_sqlalchemy'

已安装SQLAlchemy。尽管如此,我还是尝试重新安装到将要使用的目录中。我知道了:

The directory '/Users/_/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/_/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Requirement already satisfied: Flask-SQLAlchemy in /Library/Python/2.7/site-packages (2.3.2)
Requirement already satisfied: Flask>=0.10 in /Library/Python/2.7/site-packages (from Flask-SQLAlchemy) (1.0.2)
Requirement already satisfied: SQLAlchemy>=0.8.0 in /Library/Python/2.7/site-packages (from Flask-SQLAlchemy) (1.2.10)
Requirement already satisfied: Jinja2>=2.10 in /Library/Python/2.7/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (2.10)
Requirement already satisfied: itsdangerous>=0.24 in /Library/Python/2.7/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (0.24)
Requirement already satisfied: Werkzeug>=0.14 in /Library/Python/2.7/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (0.14.1)
Requirement already satisfied: click>=5.1 in /Library/Python/2.7/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (6.7)
Requirement already satisfied: MarkupSafe>=0.23 in /Library/Python/2.7/site-packages (from Jinja2>=2.10->Flask>=0.10->Flask-SQLAlchemy) (1.0)

关于我不拥有目录的问题是不正确的。我是这台机器上唯一的一个。我拥有一切。

无论如何,我返回以重新运行该文件并得到相同的错误消息。因此,它已安装但尚未安装,或者至少对我不可用。

当我注释掉其中一个导入语句时看到的一条错误消息如下:

File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sqlalchemy/engine/strategies.py

我不知道如何解决此问题并启动并运行SQLAlchemy。我已经烧了1.5个小时以上。列出的最后一个错误表明拥有2个版本的python可能与此有关。

您对补救措施的想法将不胜感激。

13 个答案:

答案 0 :(得分:1)

您安装了flaskext.sqlalchemy吗?看来您可能只安装了SQLAlchemy软件包,而没有安装Flask Extension。尝试pip install Flask-SQLAlchemy

答案 1 :(得分:1)

最终,我在发布上述问题后解决了这个问题。

解决方法是运行所有程序包更新并通过Anaconda安装并在Spyder中完成我的工作。

吸取的教训很简单:一旦开始将Anaconda用作Python的万用环境,则默认情况下,Anaconda会将所有通过conda install或pip进行的更新编排到系统中。

答案 2 :(得分:1)

这个问题主要发生在我们在 flask run 中使用 cmd virtual environment 运行烧瓶时

原因

flask run 命令运行烧瓶时会发生这种情况

flask-sqlalchemy 考虑 pythonpython3 的路径而不是 virtaul environment 安装包路径

解决方案

  • Open new terminal deactivate virtual environment
  • 在全局环境中安装 flask-sqlalchemy pip install flask-sqlalchemy
  • 然后激活 virtual environment 并运行命令
    • 在 Ubuntu/Mac

      export FLASK_APP=app
      export FLASK_ENV=development
      flask run
      
    • 在 Windows 中

      SET FLASK_APP=app
      SET FLASK_ENV=development
      flask run
      

答案 3 :(得分:0)

您很有可能已经在虚拟环境中安装了该特定组件,但随后忘记将venv解释器分配为项目的解释器。如果您使用的是pycharm,请转到“文件”>“设置”>“项目解释器”,然后从下拉列表中为您的项目选择正确的解释器。

该窗口还将显示您安装在该特定解释器上的所有软件包,以便您可以确认已实际安装SQLAlchemy。

答案 4 :(得分:0)

我认为您的pip和python版本不匹配。 检查您的pip版本 pip --version ,如果是pip3
你可以试试这个

sudo apt-get install python3-sqlalchemy

这应该有效。

:〜$ python3

  
    

导入sqlalchemy

  

答案 5 :(得分:0)

这对我有用。

  1. 如果使用虚拟环境,则在安装新软件包时首先应检查您是否处于正确的环境中。由于如果您将pycharm用作IDE,将conda用作虚拟环境管理器,则pycharm不会在终端中自动激活解释器的环境。范例:(base)->(myenv)
  2. 使用pip3作为软件包安装程序。有时由于计算机中python版本不同而弹出问题。 pip3 install flask_sqlalchemy
pip安装的

软件包将在python2.x / site-packages下,而pip3的软件包将在python3.x / site-packages下

答案 6 :(得分:0)

如果您使用的是Mac,请尝试 pip install flask-sqlalchemy 代替 pip3 install flask-sqlalchemy

它可以处理一些警告,但能够成功连接到数据库并创建表。 “ FSADeprecationWarning:SQLALCHEMY_TRACK_MODIFICATIONS会增加大量开销,并且将来默认情况下将被禁用。将其设置为True或False可以禁止显示此警告。”

答案 7 :(得分:0)

可能是点子路径问题。如果使用conda虚拟环境(与anaconda或miniconda一起使用),请在Linux中检查which pipwhich python(查找pip和python路径)并确保它们对齐。解决您的点路径问题,或者代替pip install flask_sqlalchemy进行

<ANACONDA or MINICONDA PATH>/envs/<ENV_NAME>/bin/pip install flask_sqlalchemy

为了将软件包安装在正确的位置。

答案 8 :(得分:0)

我最近遇到了这个问题。以下步骤解决了我的问题:

确保您正在导入烧瓶

from flask import Flask from flask_sqlalchemy import SQLAlchemy

烧瓶sqlalchemy教程https://flask-sqlalchemy.palletsprojects.com/en/2.x/quickstart/

此外,在执行代码之前,请确保您的环境已“激活”。

我正在使用Python 2.7和pip 20.0.2

答案 9 :(得分:0)

如果已安装并且似乎没有任何更改,请将此代码行添加到 init .py

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

关闭跟踪通知错误

答案 10 :(得分:0)

用于 anaconda 用户。

我尝试了上面几乎所有的解决方案,没有人帮助过我,

但是我试图打开 anaconda导航器,并从anaconda导航器启动了 vsCode ,这就是解决问题的方法,我认为工作环境之间存在一些冲突。

注意:您应该保持 anaconda导航器打开!!!!

答案 11 :(得分:0)

我在使用 PyCharm 并遇到了同样的问题。解决这个问题的方法是打开终端并使您的当前目录成为包含您的 python 程序的文件。然后安装所需的包,即 pip install flask_sqlalchemy 。之后就可以了。

答案 12 :(得分:0)

原因

flask run 中的 virtual environment 命令运行烧瓶时会发生这种情况

  • 由于pip install flask全局安装了flask而发生错误
  • 当我们运行 flask run 时,pythonpython3 编译器首先检查 flaskglobal 包,如果不存在 {{1} } 然后签入 flask
  • 如果virtual environmentpython全局中检测到python3,那么flask包将导入其他包,例如flask、{ {1}} 等来自全局包

解决方案

  • 打开 SQLAlachemy 终端或 Migrate 虚拟环境

  • 卸载全局包中的new deactivateflask

  • 然后回到pip uninstall flask终端

    • 运行烧瓶 pip3 uninstall flask

  • virtual environment 虚拟环境并运行命令

    <块引用>

    在 Ubuntu/Mac 中

    flask run
    <块引用>

    在 Windows 中

    activate
相关问题