support - python flask module download




PyCharm Auflösung-flask.ext.sqlalchemy vs flask_sqlalchemy (2)

Benutze einen virtualenv und setze diesen virtualenv für dein Projekt in PyCharm. Ich hatte das gleiche Problem wie Sie und nach dem Einstellen der richtigen virtualenv (die die Flasche und Kolben_sqlalchemy Erweiterung enthält) ist mein Problem gelöst.

Um ein virtualenv für Ihr Projekt in PyCharm einzustellen ( von JetBrains Web Help ):

So fügen Sie der Liste verfügbarer Interpreter eine vorhandene virtuelle Umgebung hinzu Klicken Sie auf der Seite Projekt-Interpreter der Projekteinstellungen auf . Wählen Sie in der Dropdown-Liste Lokal hinzufügen.

Wählen Sie im Dialogfeld Python-Interpreter auswählen die gewünschte Python-Programmdatei aus, und klicken Sie auf OK.

Versuchen Sie außerdem, dem root Ihres Projekts die Datei " requirements.txt" hinzuzufügen. Danach benachrichtigt Sie PyCharm, dass fehlende Abhängigkeiten installiert werden, die Ihnen helfen könnten.

Wenn ich das folgende Format in meiner Anwendung verwende, funktioniert alles, außer PyCharms Auflösung / Autocomplete-Funktion:

from flask.ext.sqlalchemy import SQLAlchemy

Wenn ich das folgende Format in meiner Anwendung verwende, funktioniert alles. Leider ist es nicht der richtige Weg, die Bibliotheken zu importieren:

from flask_sqlalchemy import SQLAlchemy

Gibt es eine Möglichkeit, PyCharm die erste Syntax korrekt aufzulösen?


Der flask.ext Namespace ist ein Übergangs- Namespace. flask.ext Sie im flask.pocoo.org/docs/0.10/extensiondev/#ext-import-transition Erweiterungsimportzwischenübergang der Flask Extension Development- Dokumentation:

Für eine Weile empfahlen wir die Verwendung von Namespace-Paketen für Flask-Erweiterungen. Dies stellte sich in der Praxis als problematisch heraus, da viele verschiedene konkurrierende Namespace-Paketsysteme existieren und pip automatisch zwischen verschiedenen Systemen wechseln würde, was für die Benutzer eine Menge Probleme mit sich brachte.

und

Flask-Erweiterungen sollten Benutzer dazu flask.ext.foo aus flask.ext.foo anstelle von flask_foo oder flaskext_foo zu importieren , damit Erweiterungen zum neuen Paketnamen flaskext_foo können, ohne die Benutzer zu beeinträchtigen.

flask.ext zwischen den Versionen zu flask.ext , wurde der flask.ext Alias ​​hinzugefügt, der beim Import von flask.ext.[name] automatisch versucht, flask_[name] -Pakete zu importieren. Aber dieser Übergang ist jetzt umstritten; Sie werden keine Pakete mehr finden, die sich nur auf flask.ext .

Daher ist es völlig in Ordnung , den tatsächlichen Modulnamen zu verwenden und PyCharm die Modulinhalte automatisch vervollständigen zu lassen.

Sie müssen nur flask.ext wenn Sie noch eine ältere Version der Erweiterung verwenden und zukunftssicher sein müssen. Diese Zukunft ist schon da.





flask-sqlalchemy