1
votes

AttributeError: l'objet 'NoneType' n'a pas d'attribut 'SSLContext' exécutant le script flask dans PyCharm 2018.3.7 sur Win10

Exécution du script Hello world à l'aide de flask:

C:\anaconda3\python.exe C:/anaconda3/Scripts/flask-script.py run
Traceback (most recent call last):
  File "C:/anaconda3/Scripts/flask-script.py", line 9, in <module>
    sys.exit(main())
  File "C:\anaconda3\lib\site-packages\flask\cli.py", line 966, in main
    cli.main(prog_name="python -m flask" if as_module else None)
  File "C:\anaconda3\lib\site-packages\flask\cli.py", line 586, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
  File "C:\anaconda3\lib\site-packages\click\core.py", line 717, in main
    rv = self.invoke(ctx)
  File "C:\anaconda3\lib\site-packages\click\core.py", line 1135, in invoke
    sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
  File "C:\anaconda3\lib\site-packages\click\core.py", line 641, in make_context
    self.parse_args(ctx, args)
  File "C:\anaconda3\lib\site-packages\click\core.py", line 940, in parse_args
    value, args = param.handle_parse_result(ctx, opts, args)
  File "C:\anaconda3\lib\site-packages\click\core.py", line 1477, in handle_parse_result
    self.callback, ctx, self, value)
  File "C:\anaconda3\lib\site-packages\click\core.py", line 96, in invoke_param_callback
    return callback(ctx, param, value)
  File "C:\anaconda3\lib\site-packages\flask\cli.py", line 742, in _validate_key
    is_context = isinstance(cert, ssl.SSLContext)
AttributeError: 'NoneType' object has no attribute 'SSLContext'

Process finished with exit code 1

J'obtiens les erreurs suivantes:

# coding=utf-8
from flask import Flask
app = Flask(__name__)

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

La configuration dans PyCharm doit être correcte: config

Flask 1.1.1 déjà installé dans l'environnement anaconda3. J'utilise PyCharm 2018.3.7 sur Win10 Home.

Pourriez-vous s'il vous plaît m'aider à résoudre ce problème ou que dit l'erreur? Merci d'avance!


0 commentaires

3 Réponses :


0
votes

FLASK_APP devrait avoir votre module flask.

flask quickstart serait utile.

vous devez indiquer à votre terminal l'application avec laquelle travailler en exportant la variable d'environnement FLASK_APP

BTW, pycharm fournit un moyen facile de créer une application flask. Ce lien vous aide également.

Voici mon exemple simple.

$ cat hello.py 
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "hello world"
$ env FLASK_APP=hello.py  flask run
 * Serving Flask app "hello.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
127.0.0.1 - - [12/Apr/2020 12:13:04] "GET / HTTP/1.1" 200 -


3 commentaires

Dans l'invite de commande Win, j'ai défini la variable FLASK_APP via: "C: \ path \ to \ app> set FLASK_APP = hello.py". Je reçois toujours la même erreur. Ou comment puis-je exporter la variable d'environnement FLASK_APP? Merci.


Je donne l'exemple dans ma réponse et j'espère que cela aidera


Cela n'a pas aidé. semble être associé à un certificat SSL?



0
votes

Vous devez l'exécuter à partir de l'invite anaconda dans le bon environnement.

(data-class) C:\Users\Faramarz>cd /d D:\...\surfs_up

(data-class) D:\...\surfs_up>set FLASK_APP=app.py

(data-class) D:\...\surfs_up>flask run
 * Serving Flask app "app.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [18/Oct/2020 17:27:47] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [18/Oct/2020 17:27:47] "GET /favicon.ico HTTP/1.1" 404 -


0 commentaires

0
votes

J'ai eu ce problème et je n'ai pas pu faire fonctionner mon application Flask via VS Code. Il y a quelque chose qui ne va pas avec mon environnement, j'ai donc recherché sur mon ordinateur l'Anaconda Powershell, cd dans le bon dossier, puis tapé: set FLASK_APP = app.py et l'ai exécuté.

Quand il n'a pas renvoyé d'erreur, j'ai lancé flask run dans la ligne suivante et il m'a donné mon adresse locale. Une erreur que le PowerShell a rejetée était qu'il ne pouvait pas trouver mon fichier car il n'existait pas, j'ai donc changé le fichier en app.py et cela a fonctionné.


0 commentaires