尝试运行具有以下导入内容的文件:
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可能与此有关。
您对补救措施的想法将不胜感激。
答案 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
考虑 python
或 python3
的路径而不是 virtaul environment
安装包路径
解决方案
Open new terminal
或 deactivate virtual environment
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)
这对我有用。
pip3 install flask_sqlalchemy
软件包将在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 pip
和which 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
时,python
或 python3
编译器首先检查 flask
的 global 包,如果不存在 {{1} } 然后签入 flask
virtual environment
或python
在全局中检测到python3
,那么flask
包将导入其他包,例如flask
、{ {1}} 等来自全局包解决方案
打开 SQLAlachemy
终端或 Migrate
虚拟环境
卸载全局包中的new
deactivate
或flask
然后回到pip uninstall flask
终端
pip3 uninstall flask
或
virtual environment
虚拟环境并运行命令
在 Ubuntu/Mac 中
flask run
<块引用>
在 Windows 中
activate