ImportError: нет модуля с именем sqlalchemy

Я не могу найти модуль на python, хотя easy_install говорит, что он уже установлен. Любая идея, как разрешить это isseue?

$ python -c "from flaskext.sqlalchemy import SQLAlchemy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named sqlalchemy


$ python -V
Python 2.7


$ sudo easy_install sqlalchemy
Searching for sqlalchemy
Best match: SQLAlchemy 0.7.7
Adding SQLAlchemy 0.7.7 to easy-install.pth file

Using /usr/lib/python2.7/site-packages
Processing dependencies for sqlalchemy
Finished processing dependencies for sqlalchemy

$sudo pip install SQLAlchemy --upgrade Требование уже обновлен: SQLAlchemy в /usr/lib/python 2.7/site-packages Очистка до...

Хотя pip говорит, что он установлен. Но я не могу найти их в выводе sys.path.

$ sudo python -c "import sys;print sys.path" ['',
'/usr/lib/python2.7/site-packages/Flask_SQLAlchemy-0.15-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask-0.8-py2.7.egg',
'/usr/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg',
'/usr/lib/python2.7/site-packages/Werkzeug-0.8.3-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask_WTF-0.5.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/WTForms-0.6.3-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask_Mail-0.6.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/blinker-1.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/lamson-1.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/python_daemon-1.6-py2.7.egg',
'/usr/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/mock-0.8.0-py2.7.egg',
'/usr/lib/python2.7/site-packages/chardet-1.0.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/lockfile-0.9.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask_FlatPages-0.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/Markdown-2.1.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/PyYAML-3.10-py2.7-linux-i686.egg',
'/usr/lib/python2.7/site-packages/uWSGI-1.0.3-py2.7.egg',
'/usr/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-i686.egg',
'/usr/lib/python27.zip', '/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info']

Ответ 1

Хорошо, я снова установил пакет через pip, даже если это не помогло. И затем я переписал весь каталог /usr/lib/python -2.7 с другой рабочей машины с аналогичной конфигурацией текущий компьютер. Он начал работать. Я понятия не имею, что случилось с моей настройкой. Я вижу некоторое различие "print sys.path" вывод раньше и сейчас. но теперь моя проблема решена этой работой.

EDIT: Найденное реальное решение для моей настройки. обновление "sqlalchemy только не решает проблему". Мне также нужно обновить flask-sqlalchemy, который разрешил проблему.

Ответ 2

Вы установили flaskext.sqlalchemy? Похоже, что у вас установлен пакет SQLAlchemy, но не расширение флешки. Попробуйте pip install Flask-SQLAlchemy или easy_install Flask-SQLAlchemy. Это доступно в cheeseshop, поэтому любая утилита должна забрать его.

Ответ 3

Я только что испытал ту же проблему. По-видимому, появился новый метод распространения, код расширения больше не хранится в flaskext.

Источник: Flask CHANGELOG Это сработало для меня:

from flask_sqlalchemy import SQLAlchemy

Ответ 4

Это работает для меня:

sudo pip install flask_sqlalchemy
sudo pip install sqlalchemy

Затем в вашем коде используйте:

from flask_sqlalchemy import SQLAlchemy

Ответ 6

Этот код отлично работает:

import sqlalchemy

Возможно, вы установили пакет в другую версию интерпретатора?

Кроме того, как заметил Шойли, вам необходимо установить расширение колбы, чтобы оно было доступно.

Ответ 7

Итак, вот идея!

Так как он работал где-то еще.

установить python-virtualenv и, возможно, вы можете установить virtualenv-wrapper (что довольно круто для создания проектов и т.д.)

В каждом env у вас могут быть разные варианты яиц. Другими словами, вы могли бы иметь sqlalchemy 1 и sqlaclhemy 1.5 в двух разных envs, и они не будут конфликтовать друг с другом. Кажется, что у вас проблемы с вашими установленными яйцами.

Итак, идем:

virtualenv --no-site-packages foo
source foo/bin/activate

Параметр --no-site-packages создаст virtualenv и не будет использовать пакеты, уже установленные на вашем компьютере. Это очень похоже на установку простого python.

source foo/bin/activate загружает virtualenv.

Это не то, что действительно дружелюбно. И вот почему http://www.doughellmann.com/projects/virtualenvwrapper/ существует.

Тем не менее, вы должны увидеть что-то вроде вашего в терминале "(foo) user @domain $:" после активации вашего виртуального пользователя. Это означает, что вы можете продолжить!

Тогда вам нужно сделать.

python setup.py develop вашего проекта. Он должен загружать и устанавливать зависимости вашего проекта в virtualenv, расположенном в foo. Если вам нужно установить что-нибудь еще, используйте pip или easy_install, не используя sudo. При использовании virtualenv вам почти никогда не нужно использовать sudo. Sudo установит пакет в вашей глобальной установке python, пока это не требуется и не очень желательно.

Если что-то происходит в вашем virtualenv, вы всегда можете удалить его и создать новый. Это неважно. Ничего не нужно возиться. Не работает? начните сначала, при необходимости pip install -U, определите версии, если необходимо, и так далее.

И последнее, но не менее важное: в других ответах кажется, что импорт изменился. Если новые версии для flask-sqlalchemy находятся где-то в другом месте, вы должны обновить свой импорт или установить версию, которую вы использовали.

Ответ 8

Решение для меня было использовать:

from flask_sqlalchemy import SQLAlchemy

вместо

from flask.ext.sqlalchemy import SQLAlchemy

Ответ 9

сначала установите библиотеку

pip install flask_sqlalchemy 

после этого

from flask_sqlalchemy import SQLAlchemy

поместите это в файл app.py, чтобы получить доступ к базе данных через SQLAlchemy

Ответ 10

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

В диалоговом окне "Настройки/Настройки" (Ctrl + Alt + S) в боковом меню выберите "Проект": | Переводчик проекта.

Проверьте, какие пакеты у вас установлены (вам нужны SQLAlchemy и Flask-SQLAlchemy). Дважды щелкните имя любого пакета, откроется меню "Доступные пакеты".

Найдите отсутствующие пакеты и нажмите "Установить".