web-dev-qa-db-fra.com

ImportError: Aucun module nommé flask.ext.sqlalchemy dans virtualenv

Voici l'erreur principale que j'obtiens en essayant d'exécuter le code suivant dans python3 à partir de flask_sqlalchemy import SQLAlchemy

Traceback (most recent call last):
  File "/home/jsnyder10/.local/bin/flask", line 11, in <module>
sys.exit(main())
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/flask/cli.py", line 513, in main
cli.main(args=args, prog_name=name)
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/flask/cli.py", line 380, in main
return AppGroup.main(self, *args, **kwargs)
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/click/decorators.py", line 64, in new_func
return ctx.invoke(f, obj, *args[1:], **kwargs)
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/flask/cli.py", line 423, in run_command
app = DispatchingApp(info.load_app, use_eager_loading=eager_loading)
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/flask/cli.py", line 152, in __init__
self._load_unlocked()
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/flask/cli.py", line 176, in _load_unlocked
self._app = rv = self.loader()
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/flask/cli.py", line 237, in load_app
rv = locate_app(self.app_import_path)
  File "/home/jsnyder10/.local/lib/python3.5/site-packages/flask/cli.py", line 90, in locate_app
__import__(module)
  File "/home/jsnyder10/Documents/CS50/pset7/pset7/finance/application.py", line 2, in <module>
from flask_sqlalchemy import SQLAlchemy
ImportError: No module named 'flask_sqlalchemy'

Je ne sais pas si c'est lié, mais quand je mets à jour sqlaclhemy, cela donne le pip suivant. J'ai essayé de mettre à jour pip, mais pour une raison quelconque, la version 9.0.1 indique qu'elle a été mise à niveau mais ne met pas à jour réellement.

You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Voici ce que je reçois lorsque je lance pip liste, car vous pouvez voir que sqlalchemy et flask-sqlalchemy sont installés.

DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
appdirs (1.4.3)
click (6.7)
Flask (0.12.1)
Flask-SQLAlchemy (2.2)
itsdangerous (0.24)
Jinja2 (2.9.6)
MarkupSafe (1.0)
packaging (16.8)
pip (9.0.1)
pyparsing (2.2.0)
setuptools (35.0.2)
six (1.10.0)
SQLAlchemy (1.1.9)
Werkzeug (0.12.1)
wheel (0.29.0)

Je devine qu'il utilisait la version incorrecte de Python. Je ne suis jamais allé au fond des choses, mais ma machine virtuelle a été corrigée et une nouvelle machine corrigée. Merci pour l'aide les gars, j'aurais aimé pouvoir le réparer.

6
new to python

La déclaration d'importation:

from flask.ext.sqlalchemy import SQLAlchemy

déclenche l'exception ImportError: No module named flask.ext.sqlalchemy in virtualenv puisque le code d'extension n'est plus stocké sous flask.ext, comme indiqué dans cette réponse .

Par conséquent, la déclaration d'importation doit être remplacée par:

from flask_sqlalchemy import SQLAlchemy
11
Liyan Song

Au lieu de:

  from flask.ext.mongoalchemy import MongoAlchemy

Utilisation:

  from flask_mongoalchemy import MongoAlchemy
1
user9585103

essayez ceci pip install flask-sqlalchemy

1
Raaj

J'ai le même problème, j'utilise l'extension Flask-WhooshAlchemy (0.56), mais si vous essayez de l'importer: import flask_whooshalchemy as whooshalchemy qui donne l'erreur signalée: ImportError: No module named flask.ext.sqlalchemy.

Ensuite, j'ai changé l'instruction d'importation dans Flask-WhooshAlchemy (ligne 18) de import flask.ext.sqlalchemy as flask_sqlalchemy À import flask_sqlalchemy as flask_sqlalchemy # Modified.

Cela résout l'erreur d'importation, mais cela signifie que vous disposez d'une version modifiée de Flask-WhooshAlchemy.

0
Juanu