ImportError: cannot import name 'Flask' from 'flask' (unknown location)

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hallo liebe RPi-Freunde,


    Ich habe ein Python-Skript für einen Flask-Server, welches ich per Remote Desktop Verbindung (Login per root) und der IDE Thonny starten kann.

    Gehe ich per python3 Flask_Server.py auf das Skript um jenes auszuführen über die Konsole, erhalte ich folgende Fehlermeldung:

    Python
    Traceback (most recent call last):
      File "Flask_Server.py", line 1, in <module>
        from flask import Flask, render_template, request, url_for, session, jsonify, send_file
    ImportError: cannot import name 'Flask' from 'flask' (unknown location)

    Das entsprechende Flask-Skript:


    Python
    from flask import Flask, render_template, request, url_for, session, jsonify, send_file
    from werkzeug.utils import redirect
    
    app = Flask(__name__)
    app.secret_key = "zISMDCwvfJY2TXHMKHrB"  # is used for hashing the session vars
    
    [...]
    
    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=8080, threaded=True, debug=True)


    Python 3.7.4


    Könnte man meinen, man solle Flask installieren, also:

    pip3 install Flask

    führt zu:

    Code
    Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
    Requirement already satisfied: Flask in /usr/lib/python3/dist-packages (1.0.2)

    Flask 1.0.2

    Python 3.7.3 (default, Dec 20 2019, 18:57:59)

    [GCC 8.3.0]



    Mir fehlt es nun an Know-How um an der Stelle weiter zu debuggen.

    Rechercheergebnisse nach dem Fehler brachten den Hinweis, man solle per pip [..] Flask installieren.


    Ich freue mich über jede Hilfe.


    LG

    opc241

    Edited once, last by opc241 ().

  • Mach mal


    Code
    python3 -c 'import flask; print(flask.__file__)'

    und vermelde das Ergebnis.

  • Das ist sehr merkwuerdig. Bei mir kommt da


    Code
    beer:tmp deets$ python -c 'import flask; print(flask.__file__)'
    /Users/deets/.virtualenvs/tmp-agwWamBd/lib/python3.7/site-packages/flask/__init__.py

    Und so sollte das bei dir auch aussehen.


    Was passiert bei __blackjacks__ Vorschlag?


    Ok. Das ist ein namespace Paket, und das sollte so nicht sein.


    Was gibt


    Code
    python -c 'import flask; print(flask.__path__)'

    zurueck? (Anderer Name!)

  • Was gibt


    Code
    python -c 'import flask; print(flask.__path__)'

    zurueck? (Anderer Name!)

    --> ['/usr/lib/python2.7/dist-packages/flask']


    Ist das richtig, dass hier Python 2.7 steht und ich per Python3 das Skript ausführe? Denn das Skript ist mit Python3 gebaut und funktioniert so unter Python2 garnicht. Und falls nein, kann/sollte man den Pfad umbiegen?

  • Da ist was vermurkst. Bei python3 sollte niemals dieser Pfad von python2.7 auftauchen. Die Frage ist, wo der herkommt, und ob man das sinnvoll zuruecksetzen kann. Oder ob du besser alles neu machst (also das komplette OS!).


    Ich wuerde dir letzteres vorschlagen, denn es ist schwer absehbar, was da wo wie vermurkst wurde, da kann man sehr lange suchen.

  • Ach f....erdammt, ja, daran lag's natuerlich. Verzeihung.

    Edited once, last by MistyFlower59469 ().

  • Viellicht bin ich ja ein ganz knorker 17jaehriger, der mit seinem Jugendslang toefte um die Ecke kommt. Wissen die ja nicht, diese nichtsnutzigen Jungspunde!