web-dev-qa-db-fra.com

ImportError: Aucun module nommé sqlalchemy

Je ne parviens pas à trouver un module en python, bien que easy_install indique qu'il est déjà installé . Avez-vous une idée de la façon de résoudre ce problème? 

$ 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 installer SQLAlchemy --upgrade Exigence déjà à jour: SQLAlchemy dans /usr/lib/python2.7/site-packages Cleaning up ...

Bien que pip dise qu'il est installé.Mais je ne les trouve pas dans la sortie 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']
42
webminal.org

D'accord, j'ai réinstallé le paquet via pip même si cela n'a pas aidé. Et puis j'ai synchronisé l'intégralité du répertoire /usr/lib/python-2.7 à partir d'une autre machine de travail avec une configuration similaire à celle de la machine courante. Je n'ai aucune idée de ce qui n'allait pas avec ma configuration. Je vois une différence "print sys.path" sortie plus tôt et maintenant. mais maintenant mon problème est résolu par ce travail autour.

EDIT: trouvé la vraie solution pour ma configuration. la mise à niveau "sqlalchemy ne résout pas le problème" J'ai également besoin de mettre à niveau le flask-sqlalchemy qui a résolu le problème.

9
webminal.org

Avez-vous installé flaskext.sqlalchemy ? Il semble que le paquet SQLAlchemy soit installé mais pas l'extension flask. Essayez pip install Flask-SQLAlchemy ou easy_install Flask-SQLAlchemy. Il est disponible dans la fromagerie donc l’un ou l’autre des utilitaires devrait le récupérer.

59
D.Shawley

Je viens de vivre le même problème. Apparemment, il existe une nouvelle méthode de distribution, le code d'extension n'est plus stocké sous flaskext.

Source: Flask CHANGELOG .__ Cela a fonctionné pour moi:

from flask_sqlalchemy import SQLAlchemy
42
sibande

Cela fonctionne pour moi:

Sudo pip install flask_sqlalchemy
Sudo pip install sqlalchemy

Ensuite, dans votre code, utilisez:

from flask_sqlalchemy import SQLAlchemy
8
Ming Liu

essaye ça :

from flask.ext.sqlalchemy import SQLAlchemy
5
mata

Alors voici une idée!

Comme cela semblait fonctionner ailleurs.

installez python-virtualenv.__ et vous pouvez éventuellement installer virtualenv-wrapper (ce qui est très pratique pour créer des projets, etc.).

Dans chaque env, vous pouvez avoir différentes versions d'œufs. En d'autres termes, vous pourriez avoir sqlalchemy 1 et sqlaclhemy 1.5 dans deux envs différents et ils ne seront pas en conflit l'un avec l'autre. Il semble que vous ayez un problème avec vos œufs actuellement installés. 

Alors on y va:

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

Le paramètre --no-site-packages crée un virtualenv et n'utilise pas les packages déjà installés sur votre ordinateur. C'est un peu comme une installation en python nu.

source foo/bin/activate charge virtualenv. 

Ce n'est pas vraiment convivial. Et c'est pourquoi http://www.doughellmann.com/projects/virtualenvwrapper/ existe.

Cela dit, vous devriez voir quelque chose comme dans votre terminal "(foo) user @ domain $:" une fois votre virtualenv activé. Cela signifie que vous pouvez continuer!

Ensuite, vous devez faire.

python setup.py develop de votre projet. Il devrait télécharger et installer les dépendances de votre projet dans le virtualenv situé dans foo. Si vous avez besoin d'installer quelque chose d'autre, veuillez utiliser pip ou easy_install sans utiliser Sudo. Lorsque vous utilisez virtualenv, vous n'avez presque jamais besoin d'utiliser Sudo. Sudo installera le paquet dans votre installation globale de python tant que ce n’est pas obligatoire et pas vraiment souhaitable. 

Si quelque chose se passe dans votre virtualenv, vous pouvez toujours le supprimer et en créer un nouveau. Ce n'est pas grave. Pas besoin de jouer avec quoi que ce soit. Ça ne marche pas? recommencez, faites pip install -U si nécessaire, définissez les versions si nécessaire, etc.

Dernier point mais non le moindre, dans les autres réponses, il semble que l'importation a changé. Si les nouvelles versions de flask-sqlalchemy se trouvent ailleurs, vous devez mettre à jour votre importation ou installer la version que vous utilisiez auparavant. 

3

Ce code fonctionne parfaitement:

import sqlalchemy

Peut-être avez-vous installé le paquet dans une autre version de l'interprète?

En outre, comme l'a souligné Shawley, vous devez installer l'extension du flacon pour qu'elle soit accessible.

3
user1254893

installez d'abord la bibliothèque

pip install flask_sqlalchemy 

après ça 

from flask_sqlalchemy import SQLAlchemy

mettez ceci dans le fichier app.py pour obtenir l'accès à la base de données via SQLAlchemy

2

Очестана (На машине с Windows 10).

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

Cliquez ici pour afficher toutes les informations sur SQLAlchemy et Flask-SQLAlchemy. Дважды щелкните имя любого пакета, откроется меню "Доступные пакеты".

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

0
RiceCrispy

La solution pour moi était d'utiliser:

from flask_sqlalchemy import SQLAlchemy

au lieu de 

from flask.ext.sqlalchemy import SQLAlchemy
0
George Mogilevsky