2013-02-21 9 views

Antwort

25

die Eclipse verwenden statische Analyse von Modulen standardmäßig verwenden. flask.ext erstellt Importliste dynamisch. Um die dynamische Analyse mithilfe der Python-Shell zu erzwingen, fügen Sie flask.ext in die Erzwungene-Built-Ins-Liste ein.

Gehen Sie zu Preferences -> PyDev -> Interpreters -> Python Interpreter. Wählen Sie Ihren Interpreter, gehen Sie zu Registerkarte. Klicken Sie auf New... und geben Sie flask.ext ein.

Dies erfordert PyDev, um Modul durch eine Shell gewaltsam zu analysieren.

Weitere Details finden PyDev manual.

+0

Das sieht sehr vielversprechend aus. In der Zwischenzeit bin ich zu PyCharm gewechselt, also kann und will ich das nicht selbst testen. Ich werde diese Frage jedoch als gelöst markieren, da Sie auf die offizielle Dokumentation verweisen. – floqqi

+3

Dies behebt nicht aufgelöste Importe für eines der von mir installierten flask.ext-Module. Das Hinzufügen der Flask-Module zu Python PATH hat die ungelösten Importe NICHT repariert. –

+0

Das sieht vielversprechend aus, aber es hat in LiClipse 3.6.0 unter Mac OS X 10.11 nicht funktioniert. Möglicherweise ein Fehler in PyDev wie in LiClipse gebündelt? –

0

touch wird eine leere Datei zu erstellen, wenn es nicht vorhanden ist, oder aktualisieren Sie die Änderungszeit der Datei, wenn es vorhanden ist.

Zu diesem Zweck echo > /site-packages/flashext/__init__.py an einer Befehlszeile sollte ausreichen. (Die Datei wird nicht leer sein, sondern enthält nur einen einzigen Zeilenumbruch, der für Python semantisch äquivalent ist).

+0

Danke, aber nach dem Wiederherstellen meines Python-Interpreters in Eclipse existiert das Problem noch. – floqqi

1

Ich kämpfe auch mit diesem, und das Problem scheint auf dem Weg zu sein, die Flasche die Erweiterungen importiert. Wenn Sie die flask/ext/__init__.py Datei öffnen, sehen Sie, dass sie Importeur verwendet. Ich glaube nicht, PyDev gefällt das viel, so habe ich diese Datei mit den festen Importe bearbeitet:

import flask_login as login 
import flask_sqlalchemy as sqlalchemy 
import flask_wtf as wtf 

def setup(): 
    from ..exthook import ExtensionImporter 
    importer = ExtensionImporter(['flask_%s', 'flaskext.%s'], __name__) 
    importer.install() 


setup() 
del setup 

Ich habe auch festgestellt, dass Flask-SQLAlchemy Importe brachen auch so statt db.Column zu tun, wie erläutert in die Dokumentation, direkt sqlalchemy Import, dh from sqlalchemy import Column, ForeignKey

0

Wenn Sie Ihr Projekt in einer virtuellen Umgebung haben und das Projekt in Eclipse hinzufügen möchten, sodass das Projekt Bibliotheken verwendet, die in der virtuellen Umgebung installiert sind, sollten Sie die folgenden Schritte ausführen.

Schritt 1: sie den absoluten Pfad zu Ihrer virtuellen Umgebung sagen: C:\Users\sadegh\Desktop\flask_eclipse\fe\venv

The content of venv folder

geht

-window->preferences->PyDev->interpretors->Python Interpretor im Scripts Verzeichnis, python.exe enter image description here ist es, das das Python-Interpreter ist das dieser virtuellen Umgebung zugewiesen wurde. Diese ausführbare Datei wird der neue Python-Interpreter sein, den wir zu Eclipse hinzufügen werden.

Schritt 2: Zur window->preferences->PyDev->Interpreters->Python Interpreter enter image description here

im rechten Bereich sehen Sie das: enter image description here

Klick auf neue Schaltfläche dann wird dieses Fenster Pop-up: enter image description here

alles schreiben Sie wollen in das Interpreter Name Feld und schreiben Sie den absoluten Pfad der Python.exe-Datei, die in Schritt 1 inerwähnt wurdeFeld

nach OK Anklicken dieser Pop-up wird: enter image description here

wählen Sie die alle Elemente dann OK

step3 klicken: Wählen Sie die neu in dem obigen Bereich hinzugefügt Dolmetscher, dann in der unten stehenden Scheibe gehen Forced Builtin Registerkarte und klicken Sie auf neue Schaltfläche auf der rechten Seite dieses unteren Bereichs.

enter image description here

und in dem Fenster, das sich öffnet Schreib flask.ext.

step4: alles wird jetzt:

, wenn Sie ein neues Projekt starten wollen: , wenn Sie einen neuen PyDev Project wählen Sie die neue Interpreter erstellen, die wir als Interpreter dieses Projekts erstellt. enter image description here

, wenn Sie ein vorhandenes Projekt in einen Kolben Projekt auf Ihrer virtuellen Umgebung konvertieren möchten sich auf Projekt klicken und den Interpreter auf den neuen Interpreter Eigenschaften und in PyDev-Interpreter/Grammar Veränderung zu gehen, die wir geschaffen haben.

Anmerkung: Wenn Sie die Eclipse ausführen, um den Server für Sie in der virtuellen Umgebung möchten, können Sie den Server aus dem Code ausführen, der die Flasche() weise wie folgt enthält:

if __name__ == '__main__': #here i assume you have put this code in a file that  
    app.run() #contains variable "app", which contains the instance of #Flask(__main__) 
+0

Dadurch wird der Interpreter global für alle Projekte hinzugefügt, obwohl der betreffende Interpreter ein projektspezifischer Interpreter wäre. Gibt es eine Möglichkeit, den Interpreter so hinzuzufügen, dass er nur projektspezifisch ist? – FluxIX

Verwandte Themen