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.
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
Für Python 3 verwenden
pip3 Kolben installieren
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.
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?
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.
/etc/Apache2/sites-available/FlaskApp.conf
WSGIDaemonProcess FlaskApp python-home=/var/www/FlaskApp/FlaskApp/venv/FlaskApp
WSGIProcessGroup FlaskApp
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
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 :)
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!
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.
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.
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.
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
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.
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
Das hat bei mir funktioniert, als unter Windows ein ähnlicher Fehler auftrat. 1. Installieren Sie virtualenv
pip install virtualenve
Erstellen Sie eine virtuelle Umgebung
virtualenv flasche
Navigieren Sie zu Scripts und aktivieren Sie die virtuelle Umgebung
aktivieren Sie
Installieren Sie die Flasche
python -m pip install flask
Überprüfen Sie, ob der Kolben installiert ist
python -m Pip-Liste