AttributeError: 'NoneType' object has no attribute 'SSLContext' running flask script in PyCharm 2018.3.7 on Win10

AttributeError: 'NoneType' object has no attribute 'SSLContext' running flask script in PyCharm 2018.3.7 on Win10

运行 使用 flask 的 Hello world 脚本:

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

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

我收到以下错误:

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

PyCharm 中的配置应该是正确的:

anaconda3环境中已经安装了Flask 1.1.1。 我在 Win10 主页上使用 PyCharm 2018.3.7。

你能帮我解决这个问题吗?或者错误说明了什么?提前致谢!

FLASK_APP 应该有你的烧瓶模块。

flask quickstart 会有帮助。

you need to tell your terminal the application to work with by exporting the FLASK_APP environment variable

顺便说一句,pycharm 提供了创建 Flask 应用程序的简便方法。 This link也对你有帮助。

这是我的简单示例。

$ 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 -

您必须 运行 在正确的环境中从 anaconda 提示符中获取它。

(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 -

我遇到了这个问题,无法让我的 Flask 应用程序通过 VS Code 运行。我的环境有问题所以我在我的电脑上搜索 Anaconda Powershell,cd 到正确的文件夹,然后输入:set FLASK_APP=app.py and 运行 that.

当它没有抛出错误时,我在下一行 运行 flask 运行 它给了我我的本地地址。 powershell 抛出的一个错误是它找不到我的文件,因为它不存在,所以我将文件更改为 app.py 并且它起作用了。

这是由于没有正确设置 env 变量造成的。

在终端中尝试这些

set FLASK_APP=your_application_file_name.py
set FLASK_ENV=development

如果仍然失败,请尝试使用 GUI 将环境变量添加到用户变量。在我的例子中,添加 FLASK_APP : your_application_file_name.py 完成了工作。

https://i.stack.imgur.com/Ge4R9.png

enter image description here