代码之家  ›  专栏  ›  技术社区  ›  Ryan

importorror:没有安装名为'flask_sqlalchemy'的模块,其中包含2个版本的Python

  •  2
  • Ryan  · 技术社区  · 6 年前

    尝试使用以下导入运行文件:

    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)
    

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

    无论如何,我回去重新运行该文件并得到相同的错误消息。所以,它已经安装,但还没有安装,或者,至少,对我来说是不可用的。

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

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

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

    希望你能考虑一下补救措施。

    3 回复  |  直到 6 年前
        1
  •  2
  •   Rahul Rahatal liz liu    5 年前

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

    sudo apt-get install python3-sqlalchemy
    

    这应该管用。

    ~$ python3
    
    >>import sqlalchemy
    
        2
  •  1
  •   Wavesailor    5 年前

    你安装了吗 flaskext.sqlalchemy ? 看起来您可能只安装了 SQLAlchemy 包装而不是烧瓶延伸部分。尝试 pip install Flask-SQLAlchemy

        3
  •  0
  •   Imran Said    6 年前

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

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

        4
  •  0
  •   liangli    5 年前

    这对我有用。

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

    pip安装的包将在python2.x/site-packages下,而pip3安装的包将在python3.x/site-packages下

        5
  •  0
  •   Serg    5 年前

    如果你在mac上,试试 pip install flask-sqlalchemy 而不是 pip3 install flask-sqlalchemy .

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