2016-10-14 1 views
0

Ich versuche, eine Flask-Anwendung zu erstellen. Ich möchte in meiner Anwendung ein separates Modul einfügen, um die Logik in verschiedene Einheiten zu unterteilen. Das separate Modul ‚Prüfung‘ und meine aktuelle Verzeichnisstruktur sieht wie folgt genannt:Python importieren Module in demselben Verzeichnis für Flask

src/ 
    validation-api/ 
     __init__.py 
     api.py 
    validator/ 
     __init__.py 
     validator.py 
    validation-form/ 
     ... 
    updater/ 
     ... 

Meine Flask Anwendung in api.py ist und ich versuche, from validator import ValidationOptions, ValidationResult, ValidationRun wo ValidationOptions, ValidationResult und ValidationRun sind Klassen in validator zu tun.

Ich erhalte den Fehler

ImportError: No module named validator

Wenn ich versuche, from .validator... oder from ..validator erhalte ich die Fehler

ValueError: Attempted relative import in non-package

Ich verstehe nicht ganz, wie Module und Pakete in Python arbeiten. Irgendwelche Vorschläge?


Inhalt von api.py:

from flask import Flask, request 
from validator.validator import ValidationOptions, ValidationResult, ValidationRun 

app = Flask(__name__) 

@app.route("/validate", methods=["POST"]) 
def validate(self): 
    pass 

if __name__ == '__main__': 
    app.run(debug=True) 

I Flask fange die folgenden drei Befehle:

set FLASK_APP=api 
set FLASK_DEBUG=1 
python -m flask run 
+3

Bitte zeigen Sie, wie Sie Ihre Flask App und den Inhalt von api.py starten. –

+0

@DanielRoseman Ich habe die Frage aktualisiert. Ich begegne den Fehlern, wenn ich zu localhost gehe: 5000. –

+1

Und in welchem ​​Verzeichnis sind Sie, wenn Sie diese Befehle ausführen? –

Antwort

1

Dank @ Daniel-Roseman, ich herausgefunden habe, was geht weiter. Ich änderte die Umgebungsvariable FLASK_APP in validation-api.api und führte den Befehl python -m flask run von src. Alle Importe arbeiten jetzt!

Verwandte Themen