Ich kann kein Modul in Python finden, obwohl easy_install sagt, dass es bereits installiert ist .. Eine Idee, wie man dieses Problem lösen kann?
$ 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 installiere SQLAlchemy --upgrade Requirement bereits aktuell: SQLAlchemy in /usr/lib/python2.7/site-packages Cleaning oben...
Obwohl pip sagt, dass es installiert ist. Aber ich kann sie nicht in der Ausgabe von sys.path finden.
$ 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']
Okay, ich habe das Paket über pip neu installiert, auch wenn das nicht geholfen hat. Und dann habe ich das gesamte Verzeichnis /usr/lib/python-2.7 von einer anderen Arbeitsmaschine mit einer ähnlichen Konfiguration wie die aktuelle Maschine .synchronisiert. Es begann zu arbeiten. Ich habe keine Ahnung, was mit meinem Setup falsch war. Ich sehe einige Unterschiede "print sys.path" früher und jetzt ausgegeben. aber jetzt ist mein Problem durch diese Umgehung gelöst.
BEARBEITEN: Die richtige Lösung für mein Setup gefunden. Aktualisierung "sqlalchemy löst das Problem nur nicht" Ich muss auch flask-sqlalchemy
aktualisieren, der das Problem gelöst hat.
Haben Sie flaskext.sqlalchemy
installiert? Es sieht so aus, als hätten Sie das SQLAlchemy-Paket installiert, nicht jedoch die Kolben-Erweiterung. Versuchen Sie pip install Flask-SQLAlchemy
oder easy_install Flask-SQLAlchemy
. Es ist im Cheeseshop erhältlich , daher sollte es von jedem Dienstprogramm abgeholt werden.
Ich habe gerade das gleiche Problem erfahren. Offenbar gibt es eine neue Verteilungsmethode, der Erweiterungscode wird nicht mehr unter flaskext
gespeichert.
Source: Flask CHANGELOG Dies funktionierte für mich:
from flask_sqlalchemy import SQLAlchemy
Das funktioniert für mich:
Sudo pip install flask_sqlalchemy
Sudo pip install sqlalchemy
Dann verwenden Sie in Ihrem Code:
from flask_sqlalchemy import SQLAlchemy
from flask.ext.sqlalchemy import SQLAlchemy
Also hier ist eine Idee!
Da schien es woanders zu funktionieren.
install python-virtualenv
und optional kannst du virtualenv-wrapper installieren (was ziemlich cool ist, um Projekte zu erstellen usw.)
In jeder Umgebung haben Sie möglicherweise unterschiedliche Versionen von Eiern. Mit anderen Worten, Sie könnten sqlalchemy 1 und sqlaclhemy 1.5 in zwei verschiedenen Umgebungen haben, und sie stehen nicht miteinander in Konflikt. Es scheint, dass Sie ein Problem mit Ihren derzeit installierten Eiern haben.
Auf geht's:
virtualenv --no-site-packages foo
source foo/bin/activate
Der Parameter --no-site-packages erstellt eine virtuelleVerwendung und verwendet nicht die auf Ihrem Computer bereits installierten Pakete. Es ist fast wie eine Python-Installation.
source foo/bin/activate
lädt die virtualenv.
Das ist nicht wirklich sehr benutzerfreundlich. Und deshalb existiert http://www.doughellmann.com/projects/virtualenvwrapper/ .
Das heißt, Sie sollten in Ihrem Terminal "(foo) user @ domain $:" etwas sehen, sobald Ihre virtualenv aktiviert ist. Es bedeutet, dass Sie weitermachen können!
Dann musst du tun.
python setup.py develop
Ihres Projekts. Es sollte Abhängigkeiten Ihres Projekts in der virtuellen Umgebung in foo
herunterladen und installieren. Wenn Sie etwas anderes installieren müssen, verwenden Sie bitte pip
oder easy_install
, ohne Sudo
zu verwenden. Bei der Verwendung von Virtualenv müssen Sie Sudo
fast nie verwenden. Sudo installiert das Paket in Ihrer globalen Python-Installation, obwohl es nicht erforderlich und nicht wirklich wünschenswert ist.
Wenn in Ihrer virtuellen Umgebung etwas passiert, können Sie es jederzeit löschen und eine neue erstellen. Das ist keine große Sache. Keine Notwendigkeit, sich mit irgendetwas zu beschäftigen. Funktioniert nicht Beginnen Sie noch einmal, führen Sie ggf. pip install -U
aus, definieren Sie ggf. die Versionen und so weiter.
In den anderen Antworten scheint sich der Import geändert zu haben. Wenn sich die neuen Versionen für flask-sqlalchemy an einem anderen Ort befinden, sollten Sie Ihren Import aktualisieren oder die verwendete Version installieren.
Dieser Code funktioniert perfekt:
import sqlalchemy
Vielleicht haben Sie das Paket in einer anderen Version des Interpreters installiert?
Wie Shawley darauf hinweist, muss die Kolbenverlängerung installiert sein, damit sie zugänglich ist.
installieren Sie zuerst die Bibliothek
pip install flask_sqlalchemy
nachdem
from flask_sqlalchemy import SQLAlchemy
fügen Sie dies in die app.py-Datei ein, um den Zugriff auf die Datenbank über SQLAlchemy zu erhalten
Очень поздно на вечеринку, но, надеюсь, это кому-нибудь поможет, находился в такой же ситуции оке (In Windows 10).
В диалоговом окне "Настройки/Настройки" (Ctrl+Alt+S), в боковом меню выберите Projekt: | Переводчик проекта.
Weitere Informationen finden Sie unter SQLAlchemy und Flask-SQLAlchemy. Дважды щелкните имя любого пакета, откроется меню "Доступные пакеты".
Bitte klicken Sie auf die Schaltfläche "Abbrechen".
Ich hatte das gleiche Problem. Es stellte sich heraus, dass ich vergessen habe, das folgende Paket zu installieren:
pip install flask_sqlalchemy
Nach der Installation des Pakets hat alles einwandfrei funktioniert. Hoffe, es hat einem anderen Noob wie mir geholfen.
Lösung für mich war zu verwenden:
from flask_sqlalchemy import SQLAlchemy
anstatt
from flask.ext.sqlalchemy import SQLAlchemy