Je suis le tutoriel Flask ici:
http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
J'arrive au point où j'essaie ./run.py et j'obtiens:
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
Cela ressemble à:
ImportError: Aucun module nommé flask
Mais leurs solutions ne sont pas utiles. Pour référence, je do _ ai un dossier nommé flask qu'un utilisateur mentionné peut causer des problèmes.
essayez de supprimer le virtualenv que vous avez créé . créez un nouveau virtualenv
virtualenv flask
puis
cd flask
activons le virtualenv
source bin/activate
maintenant, vous devriez voir (flacon) à gauche de la ligne de commande . Nous allons installer le flacon
pip install flask
Puis créez un fichier hello.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __== "__main__":
app.run()
et l'exécuter avec
python hello.py
UPDATE Flask 1.0.2
Avec la nouvelle version du flacon, il n’est pas nécessaire de lancer l’application à partir de votre script . Hello.py devrait ressembler à ceci:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
et l'exécuter avec
FLASK_APP=hello.py flask run
assurez-vous d'être dans le dossier où se trouve hello.py lors de l'exécution de la dernière commande.
Toutes les étapes avant la création de hello.py s'appliquent également à ce cas
Pour Python 3, utilisez
pip3 installer la fiole
Le seul moyen de résoudre ce problème était d’ajouter le répertoire python de mes utilisateurs au fichier myapp.wsgi. Par exemple:
sys.path.append('/home/deployer/anaconda3/lib/python3.5/site-packages')
Je suppose que si vous installez les paquetages dans l'environnement global, vous ne devriez pas avoir de problème, mais j'avais mes paquets python installés en tant qu'utilisateur.
J'ai eu un problème similaire avec Flasgger.
La raison en est que j'utilise toujours
Sudo pip install flask
mais pour une raison quelconque, ce n'est pas toujours la voie à suivre . Parfois, vous devez faire juste
pip install flask
Un autre piège est que parfois les gens tapent pip install Flask
avec le cap F
Afficher ceci ici au cas où quelqu'un se retrouverait coincé ……… .. Faites-moi savoir si cela vous a aidé.
Lien utile: Quelle est la différence entre pip install et sudo pip install?
J'utilisais python2 mais j'ai installé ceci: Sudo apt-get install libapache2-mod-wsgi-py3
Au lieu de: Sudo apt-get install libapache2-mod-wsgi
La correction de l'installation a résolu le problème de l'absence de flacon.
/etc/Apache2/sites-available/FlaskApp.conf
WSGIDaemonProcess FlaskApp python-home=/var/www/FlaskApp/FlaskApp/venv/FlaskApp
WSGIProcessGroup FlaskApp
service Apache2 restart
Je suis aussi le didacticiel Flask. Et j'ai rencontré le même problème.
http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
Dans mon cas, la solution était aussi simple que de démarrer mon environnement virtuel, comme ceci:
$ venv/scripts/activate
Il s'avère que je suis encore frais pour Python :)
Après avoir activé l'environnement virtuel et installé Flask, j'ai créé un fichier app.py. Je le lance comme ceci: python -m flask run
. J'espère que cela aidera!
Même moi aussi, je suggère que vous utilisiez virtuellement, Cela pourrait également résoudre votre problème.
Sudo apt install python-flask
Si vous voulez déployer dans productionserver puis aller de l'avant avec la solution ci-dessus sinon utilisez virtualenv.
c'est ce qui a fonctionné pour moi,
Sudo -H pip install flask
Ou pour pip3 (python3), utilisez:
Sudo -H pip3 install flask
Sidenote
Si vous utilisez virtualenv, c'est une bonne idée de pip freeze >> requirements.txt
D'autoriser la liste des packages installés à un seul endroit . La commande Sudo
et l'indicateur -H
. Pour plus d'informations sur le drapeau Sudo
's -H
, regardez Paul'sanswer . J'espère que cela vous aide.
Accédez au fichier de flacon dans le microblog, puis activez l'environnement virtuel avec source bin/activate
, puis accédez à flask/bin et installez flask, puis le reste des packages, pip install flask
. Vous verrez le flacon répertorié dans le répertoire bin. Essayez de relancer ./run.py
à partir du microblog (ou de l’endroit où vous avez le fichier).
Le script de flacon permet de démarrer un serveur de développement local, mais vous devrez le redémarrer manuellement après chaque modification de votre code. Ce n'est pas très gentil et Flask peut faire mieux. Si vous activez la prise en charge du débogage, le serveur se rechargera lors des modifications de code et vous fournira également un débogueur utile en cas de problème. Pour activer le mode débogage, vous pouvez exporter la variable d’environnement FLASK_DEBUG avant d’exécuter le serveur: par exemple, votre fichier est hello.py.
$ export FLASK_APP=hello.py
$ export FLASK_DEBUG=1
$ flask run
entrez votre mode interactif python puis:
import sys
sys.path
cela imprimera votre chemin. Vérifiez si le flacon est installé dans sys.path.
Pour MacOS, le chemin d'accès en python est sous /Opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Mais pipinstall installera le paquet python par défaut sous/Library/Python/2.7/site-packages
C'est pourquoi cela ne fonctionne pas pour MacOS.
Cela a fonctionné pour moi après la mise à niveau de pip:
curl https://bootstrap.pypa.io/get-pip.py | python
Vous avez trouvé cette réponse ici: https://stackoverflow.com/a/49748494/3197202
Ensuite, je pourrais simplement installer le ballon:
pip install flask
C'est ce qui a fonctionné pour moi quand j'ai eu une erreur similaire dans Windows; 1. Installez virtualenv
pip install virtualenve
Créer une virtualenv
flacon virtuel
Accédez aux scripts et activez virtualenv
activer
Installer le flacon
flacon python -m install
Vérifier si le flacon est installé
liste de pip python -m