Flask sqlalchemy ошибка

Tried running a file with the following imports:

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

Received the following error:

ImportError: No module named 'flask_sqlalchemy'

SQLAlchemy is installed. Still, I tried to reinstall into the directory in which it will be used. I got this:

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)

The bit about me not owning the directory is incorrect. I’m the only one on this machine. I own everything.

Anyway, I go back to rerun the file and get the same error message. So, it’s installed, but not installed or, at the very least, not available to me.

One error message I saw when I commented out one of the import statements read as follows:

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

I have no clue how to fix this and get SQLAlchemy up and running. I’ve burned over 1.5 hours on it. The last error listed suggests having 2 versions of python may have something to do with it.

Your thoughts on a remedy would be appreciated.

Просто не видит модуль sqlalchemy в приложении на flask (простенький блог). Всё перепробовал, и версии разные ставил, и менял на новые какие-то названия, ничего не помогло.
Везде, во всех туториалах, примерах всё ровно идёт, но, как всегда, не у меня.

P.S. Вот сам код блога (гитхаб)
И скрин ошибки:
f6a9850b84ad44b6bc1e16fc1c3c5b9f.png


  • Вопрос задан

    более трёх лет назад

  • 3328 просмотров

Пригласить эксперта

Вы импортируете не сам SQLAlchemy, а расширение для фласка (flask.ext.sqlalchemy) и устанавливать вам нужно именно его.
Сделать это можно так:
pip install Flask-SQLAlchemy

Попробуй еще : pip install SQLAlchemy, сделай pip freeze и глянь какие пакеты установлены.
По ссылке с гита написано:
pip install flask-sqlalchemy
pip instal postgresql
pip install sqlalchemy
pip install flask
pip install psycopg2
pip install flask-login

По ссылке на гтхаб в Readme указаны необходимые манипуляции для установки блога:
pip install flask-sqlalchemy

Вы их выполнили?


  • Показать ещё
    Загружается…

04 июн. 2023, в 01:35

1500 руб./за проект

04 июн. 2023, в 01:25

40000 руб./за проект

03 июн. 2023, в 23:42

1500 руб./за проект

Минуточку внимания

In this tutorial, we will cover how to fix Modulenotfounderror: no module named flask_sqlalchemy error.

Along with we will briefly discuss what are the causes and understand what module is this.

When developing applications with Python, Flask is one of the most popular frameworks to use.

It is simple, lightweight, and provides the essential features needed for web development.

However, when working with Flask, you may encounter an error message that says “ModuleNotFoundError: No module named ‘flask_sqlalchemy’”.

So let’s get started!

Flask-SQLAlchemy is a module for the Flask web framework that provides an easy-to-use interface for working with relational databases using SQLAlchemy.

Additionally, SQLAlchemy is a Python library that provides a high-level, object-oriented interface for working with databases.

Flask-SQLAlchemy allows you to define your database schema using Python classes, and it provides a set of tools for querying, updating, and managing your database data.

It also includes support for advanced features such as migrations, relationships between tables, and database transactions.

What is Modulenotfounderror: no module named ‘flask_sqlalchemy’?

ModuleNotFoundError: No module named ‘sqlalchemy’ is an error in Python that raise when we forget to install the SQLAlchemy module before importing it or installing it in an incorrect environment.

How to fix Modulenotfounderror: no module named ‘flask_sqlalchemy’

The following are the steps on how to resolve the error message stating modulenotfounderror: no module named flask_sqlalchemy in Python.

  1. Check if the flask_sqlalchemy module is installed

    First, you need to check if the flask_sqlalchemy module is installed in your Python environment or system.

    To check, open the cmd or command prompt, then type the command pip list.

    pip list - modulenotfounderror: no module named '_distutils_hack'

    The command pip list will show you the list of installed modules on your system.

    Moving on, if the flask_sqlalchemy module is not found, move to the next step.

    However, if the flask_sqlalchemy module is already installed, skip the next steps and proceed to the tip below.

  2. Install flask_sqlalchemy module

    If the module is not installed, you need to install it in order to fix it.

    Try the following command below in your terminal:

    The command for virtual environment or using Python 2

    pip install SQLAlchemy Flask-SQLAlchemy

    If you are using python 3

    pip3 install SQLAlchemy Flask-SQLAlchemy

    If you’re getting a permissions error

    sudo pip3 install SQLAlchemy Flask-SQLAlchemy
    pip install SQLAlchemy Flask-SQLAlchemy –user

    Command if you don’t have pip in your PATH environment variable

    python -m pip install SQLAlchemy Flask-SQLAlchemy

    If you are using python 3 it could also be pip3.10 depending on your version

    python3 -m pip install SQLAlchemy Flask-SQLAlchemy

    If you are using py alias Windows OS

    py -m pip install SQLAlchemy Flask-SQLAlchemy

    The command for Jupyter Notebook

    !pip install SQLAlchemy Flask-SQLAlchemy

  3. Fix the Path

    After you installed the module but the error continues.

    This is more likely the pip is installed but in the wrong path.

    This is the reason why the script can’t locate it.

    To fix this error follow the steps we will provide below.

    Step 1: Open the folder where you installed your Python by using this command, where python.

    Step 2: Copy the location of the Script folder after you browse and open it. Make sure it contains the pip file.

    Step 3: In the command prompt open the script directory using the cd command and the location copied previously.

    Step 4: Now install the module using the command pip install flask_sqlalchemy.

  4. Check python version

    Confirm that you’re using the right Python version that has the flask_sqlalchemy module installed if you have numerous versions of Python installed on your system.

    To do so, you can check your Python version by inputting python –version into your command prompt.

    python version

    The command python –version will display the version of Python installed on your system.

Reason why we encounter Modulenotfounderror: no module named ‘flask_sqlalchemy’

Having Modulenotfounderror: no module named ‘flask_sqlalchemy’ is due to the following reasons:

  • The SQLAlchemy package was not installed by running pip install SQLAlchemy.
  • Installing the package in a Python version other than the one you’re currently using.
  • Installing the package on a global scale rather than in your virtual environment.
  • The IDE running an incorrect version of Python.
  • Naming your module sqlalchemy.py which would shadow the official module.
  • Declaring a variable named sqlalchemy which would shadow the imported variable.

If the error continues, acquire your Python version and ensure that you are installing the package with the correct Python version.

Other Solutions in fixing Modulenotfounderror: no module named ‘flask_sqlalchemy’

  • The modulenotfound error shows because of the relative imports.
  • Having different versions of Python and pip in your system. Try this command to fix:
    • python3 -m pip install sqlalchemy
    • pip3 install sqlalchemy
    • pip install sqlalchemy
  • Typically facing server-side issue. Try this command:
    • pip install –user sqlalchemy
  • If you are using Ubuntu, an error may appear so use this command:
    • sudo apt install sqlalchemy

Conclusion

In conclusion, Modulenotfounderror: no module named flask_sqlalchemy is an error raised when the Python code is trying to import the “flask_sqlalchemy ” module but it can’t be found.

Either the module is not installed or it’s installed in a location where your Python interpreter is not looking for it.

Remember to always keep your Python installation and modules up to date, and to check for missing dependencies if you encounter any issues.

That’s it we have provided solutions for fixing this error. However, if you follow the steps and encounter any further errors, feel free to ask for more help!

If you are finding solutions to some errors you’re encountering we also have Modulenotfounderror: no module named django_filters.


Go to flask


Python 3.7 error with flask-sqlalchemy

I’m getting the error when I’m trying to import SQLAlchemy from flask-sqlalchemy and I can’t find the solution. Here is what I did in my virtual environment:

pip3 install flask-sqlalchemy

pip freeze (which outputs:

Flask==1.0.2

Flask==Migrate==2.3.0

Flask-SQLAlchemy==2.3.2

Flask-WTF==0.14.2

SQLALchemy==1.2.12

Etc.)

py -3 (to open up python 3.7)

from flask_sqlalchemy import SQLAlchemy

Then I get the error this error:

ModuleNotFoundError: No module named ‘flask_sqlalchemy’

If you want to use SQLAlchemy for Flask in a virtual environment,
you may get this error message:
ModuleNotFoundError: No module named ‘flask_sqlalchemy’

Solution:
Install ‘flask_sqlalchemy’ with activated VENV and with the internal python version of the virtual environment.
Otherwise, sqlalchemy will be installed in your root directory and not in the VENV.

.venvScriptspython.exe -m pip install flask-sqlalchemy

If you want to learn more about Flask projects with sqlalchemy, visit our current project ServerMonitor!

I found the solution in this Reddit post:
https://www.reddit.com/r/flask/comments/9r0kmz/python_37_error_with_flasksqlalchemy/

Thank you morty!

Когда я получил сообщение: «RuntimeError: Working outside of request context», — я понял, что не внимательно читал документацию. Точнее читал внимательно, но не ту версию. Прочитав нужную версию (ссылка есть в первом сообщении), исправил на:

Python
1
2
with app.app_context():
    db.create_all()

Но, как и изложено выше, упёрся в стену. Ошибки исчезли, но база не создавалась. Разумеется возник закономерный вопрос, что тут все же не так. В документации более ничего не увидел (видимо, плохо смотрел).

Дальнейший ход рассуждений был таким: раз это база данных, то, когда речь идёт о CREATE, INSERT или UPDATE, то тут нужен commit. Попытка решить проблему «в лоб»:

Python
1
2
3
with app.app_context():
    db.create_all()
    db.commit()

результатов не принесла. В поисках на просторах Web, на Stackoverflow обнаружил одну идею и переписал так:

Python
1
2
3
with app.app_context():
    db.create_all()  
    db.session.commit()

И база создалась. Причем создалась на втором уровне вложенности: varmain-instancesimple.db.

Начало положено…

#python #anaconda

#питон #анаконда

Вопрос:

я не могу импортировать flask_sqlalchemy даже после установки flask-sqlachemy

 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
 

Комментарии:

1. Вероятно, вы используете системную версию python, а не Anaconda. Нет другого объяснения, кроме того, что вы используете другой интерпретатор python, чем вы ожидаете

2. Попробуйте which python3 и посмотрите, указывает ли он на anaconda

3. да, он указывает мне на anaconda3 …. /home/sachin/anaconda3/bin/python3 что мне теперь делать?

4. Я только что столкнулся с этой ошибкой в vscode, я запускаю WSL workspace. Я смог обойти проблему, выбрав системный python, а затем вернувшись к python3.

5. Если вы используете pipenv, попробуйте pipenv install Flask-SQLAlchemy ! amp; проверьте Pipfile, добавлена ли зависимость. Однажды я столкнулся с такой проблемой. Как ни странно, когда я перезапустил компьютер, это сработало.

Ответ №1:

У меня была та же ошибка. Изменил мой системный python, выполнив следующие действия в VS Code: В меню «Вид» выберите «показать панель команд». Одна из команд, которые вы затем можете выбрать из палитры команд, — «Python: выберите интерпретатор». Выбор этого параметра позволит вам выбрать, какую версию python использовать.

Ответ №2:

Этот пост довольно старый, но я нашел другое решение, которое может помочь другим. Для меня проблема заключалась в моей IDE / Python (venv). На данный момент я использую Visual Studio версии 1.57.1 в Windows 10.

  1. Откройте визуальный код.
  2. Перейдите в раздел «Просмотр» на панели инструментов.
  3. Нажмите «Палитра команд …» (или нажмите CTRL SHIFT P в Windows).
  4. Поиск: «Интерпретатор выбора Python».
  5. Нажмите: «Введите путь интерпретатора …», а затем «Найти …».
  6. Перейдите в папку скриптов (venv): project_folder/venv/Scripts .
  7. Выберите python.exe или pythonw.exe внутри вашей project_folder/venv/Scripts папки.

Вот и все.

Flask-SQLAlchemy был установлен в моей виртуальной среде (venv). Но мой VSCode использовал интерпретатор Python system / PC для поиска пакетов вместо venv.

Надеюсь, это поможет кому-то еще.

Комментарии:

1. Привет, у меня даже нет папки scripts в моей виртуальной среде. Это странно. Не уверен, было ли обновление с тех пор. Вы знаете, где это может быть сейчас?

2. Привет @Connor, я точно не знаю, но я советую вам переделать свой venv . Вот как я это сделал: flask.palletsprojects.com/en/2.0.x/installation В Windows для создания venv : > mkdir myproject > cd myproject > py -3 -m venv venv Для активации вашего venv в Windows: > venvScriptsactivate

Ответ №3:

Это для людей, которые не используют Anaconda (у меня была эта проблема, и я решил ее таким образом)

venv Возможно, вы ошибаетесь. Вы скопировали вставку venv из другого каталога?

venv сохраняет информацию о пути, поэтому при запуске envScriptsactivate venv считает, что он находится в другом каталоге.

Он установит пакеты в СТАРЫЙ каталог. Убедитесь, что вы создаете новое 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 в командной палитре вкладки view. Если вы считаете, что установили все необходимые пакеты, и это не работает, тогда обязательно попробуйте это.

Ответ №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, удаление вашего env или повторное создание установочных пакетов. Пожалуйста, закройте ваш app.py файл и снова откройте его. Иногда это все еще выдает вашу ошибку.

Ответ №8:

Для тех, кто ищет более свежий ответ. Я не смог найти папку со сценариями. На моей машине ubuntu я сделал это (в vscode):

  1. ctrl shft p
  2. поиск выберите интерпретатор python
  3. введите путь интерпретатора
  4. перейдите к вашему-app/venv/python3
  5. выберите python3

Это решило проблему с импортом.

Понравилась статья? Поделить с друзьями:
  • Flashtool ошибка failed to get pmt info
  • Flashtool ошибка checksum
  • Flashtool ошибка 8045
  • Flashtool ошибка 3154 решение
  • Flashtool ошибка 2004 как исправить