wake-up-neo.com

Flask ImportError: Kein Modul mit dem Namen Flask

Ich folge dem Flask-Tutorial hier: 

http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

Ich komme an den Punkt, an dem ich ./run.py versuche und erhalte:

Traceback (most recent call last):
  File "./run.py", line 3, in <module>
    from app import app
  File "/Users/benjaminclayman/Desktop/microblog/app/__init__.py", line 1, in <module>
    from flask import Flask
ImportError: No module named flask

Das sieht ähnlich aus:

ImportError: Kein Modul namens flask

Aber ihre Lösungen sind nicht hilfreich. Als Referenz habe ich do einen Ordner namens flask, den ein Benutzer angesprochen haben könnte.

47
bclayman

löschen Sie die von Ihnen erstellte Virtualenv . Erstellen Sie eine neue Virtualenv

virtualenv flask

dann 

cd flask

lassen Sie uns die Virtualenv aktivieren

source bin/activate

jetzt sollten Sie (flask) auf der linken Seite der Befehlszeile sehen Lass uns flask installieren

pip install flask

Dann erstellen Sie eine Datei hello.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __== "__main__":
    app.run()

und führe es mit

python hello.py

UPDATE Flask 1.0.2

Mit der neuen Flaschenversion muss die App nicht von Ihrem Skript aus ausgeführt werden Hello.py sollte jetzt so aussehen:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

und führe es mit

FLASK_APP=hello.py flask run

stellen Sie sicher, dass Sie sich in dem Ordner befinden, in dem sich hello.py befindet, wenn Sie den neuesten Befehl ausführen.

Alle Schritte vor der Erstellung von hello.py gelten auch für diesen Fall

74
Rollback

Für Python 3 verwenden

pip3 Kolben installieren

26
Khalid Bin Huda

Der einzige Weg, den ich lösen konnte, war das Hinzufügen des Python-Verzeichnisses meiner Benutzer zur Datei myapp.wsgi. Als Beispiel:

sys.path.append('/home/deployer/anaconda3/lib/python3.5/site-packages')

Ich denke, wenn Sie die Pakete in der globalen Umgebung installieren, sollten Sie kein Problem haben, aber ich hatte meine Python-Pakete als Benutzer installiert.

8
Julian

Ich hatte ein ähnliches Problem mit Flasgger.

Der Grund dafür war, dass ich immer benutze 

Sudo pip install flask 

aber aus irgendeinem Grund ist das nicht immer der richtige Weg ... Manchmal müssen Sie es einfach tun

pip install flask

Ein anderes Problem ist, dass Leute manchmal pip install Flask mit dem cap F eingeben.

Posten hier, falls jemand stecken bleibt. Lass es mich wissen, wenn es geholfen hat.

Nützlicher Link: Was ist der Unterschied zwischen pip install und Sudo pip install?

4
aneesh joshi

Ich habe python2 verwendet, aber Folgendes installiert: Sudo apt-get install libapache2-mod-wsgi-py3

Anstelle von: Sudo apt-get install libapache2-mod-wsgi

Durch die Korrektur der Installation wurde das Problem der Flasche gelöst.

3
Norman Pilusa
  1. Bearbeiten /etc/Apache2/sites-available/FlaskApp.conf
  2. Fügen Sie vor der Zeile "WSGIScriptAlias" die folgenden zwei Zeilen hinzu:

WSGIDaemonProcess FlaskApp python-home=/var/www/FlaskApp/FlaskApp/venv/FlaskAppWSGIProcessGroup FlaskApp

  1. Apache neu starten: service Apache2 restart

Ich folge auch dem Flask-Tutorial. Und ich traf das gleiche Problem. Ich fand diesen Weg, um es zu beheben.

http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

2
NingAnMe

In meinem Fall war die Lösung so einfach wie das Starten meiner virtuellen Umgebung:

$ venv/scripts/activate

Es stellt sich heraus, dass ich noch zu Python frisch bin :)

2
Abid

Nachdem ich die virtuelle Umgebung aktiviert und Flask installiert hatte, erstellte ich eine app.py-Datei. Ich führe es so aus: python -m flask run. Hoffe das wird helfen! 

1
Bogdan001

Auch ich schlage vor, u virtualenv, Dies könnte auch Ihr Problem lösen. 

Sudo apt install python-flask

Wenn Sie in productionserver implementieren möchten, fahren Sie mit der obigen Lösung fort, ansonsten verwenden Sie virtualenv.

1
yunus

das hat für mich funktioniert,

Sudo -H pip install flask 

Oder für pip3 (python3) verwenden:

Sudo -H pip3 install flask

Randnotiz

Wenn Sie virtualenv verwenden, empfiehlt es sich, pip freeze >> requirements.txt Zuzulassen, damit die installierten Pakete an einer Stelle aufgelistet werden können Der Befehl Sudo und das Flag -H. Weitere Informationen zum -H-Flag von Sudo finden Sie unter Paul'sanswer . Ich hoffe, das hilft Ihnen.

1
rawplutonium

Gehen Sie zur Flask-Datei im Microblog, aktivieren Sie dann die virtuelle Umgebung mit source bin/activate, gehen Sie zu flask/bin und installieren Sie flask und die restlichen Pakete pip install flask. Sie sehen eine Flasche im bin-Verzeichnis. Versuchen Sie, ./run.py erneut von Microblog (oder von wo auch immer Sie die Datei haben) auszuführen.

1
Miguel

Das Flaschenskript ist praktisch, um einen lokalen Entwicklungsserver zu starten, aber Sie müssten es nach jeder Änderung an Ihrem Code manuell neu starten. Das ist nicht sehr schön und Flask kann es besser machen. Wenn Sie die Debug-Unterstützung aktivieren, lädt sich der Server bei Codeänderungen neu und stellt Ihnen einen hilfreichen Debugger zur Verfügung, wenn Probleme auftreten. Um den Debug-Modus zu aktivieren, können Sie die Umgebungsvariable FLASK_DEBUG exportieren, bevor Sie den Server ausführen: Ihre Datei heißt beispielsweise hello.py

$ export FLASK_APP=hello.py
$ export FLASK_DEBUG=1
$ flask run
0
yasin lachini

geben Sie Ihren interaktiven Python-Modus ein

import sys

sys.path

es wird Ihren Weg drucken. Überprüfen Sie, ob die Flasche im sys.path installiert ist.

Unter Mac OS befindet sich der Python-Pfad unter /Opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-Pakete

Allerdings installiert pip das Python-Paket standardmäßig unter/Library/Python/2.7/site-packages

Deshalb funktioniert es nicht für MacOS.

0
Tao Wang

Nach dem Upgrade von pip hat es für mich funktioniert:

curl https://bootstrap.pypa.io/get-pip.py | python

Diese Antwort habe ich hier gefunden: https://stackoverflow.com/a/49748494/3197202

Dann könnte ich einfach eine Flasche installieren:

pip install flask
0
ivanacorovic

Das hat bei mir funktioniert, als unter Windows ein ähnlicher Fehler auftrat. 1. Installieren Sie virtualenv

pip install virtualenve
  1. Erstellen Sie eine virtuelle Umgebung

    virtualenv flasche

  2. Navigieren Sie zu Scripts und aktivieren Sie die virtuelle Umgebung

    aktivieren Sie

  3. Installieren Sie die Flasche

    python -m pip install flask

  4. Überprüfen Sie, ob der Kolben installiert ist

    python -m Pip-Liste

0
sammy ongaya