【问题标题】:When i run the flask app i get this error当我运行烧瓶应用程序时出现此错误
【发布时间】:2022-01-02 08:06:20
【问题描述】:

我在我制作的烧瓶目录中

C:\Users\Saad Mohammed>cd C:\Users\Saad Mohammed\Documents\flask_app

C:\Users\Saad Mohammed\Documents\flask_app>设置 FLASK_APP=sample_app.ipynb

C:\Users\Saad Mohammed\Documents\flask_app>烧瓶运行

我仍然得到这个错误

  • 服务 Flask 应用“sample_app.ipynb”(延迟加载)
  • 环境:生产 警告:这是一个开发服务器。不要在生产部署中使用它。 请改用生产 WSGI 服务器。
  • 调试模式:关闭 用法:烧瓶运行[选项] 尝试“flask run --help”寻求帮助。

错误:无法导入“sample_app.ipynb”。

当我将文件名从 sample_app.ipynb 更改为 sample_app.py 并尝试进行烧瓶运行时,我收到此错误

C:\Users\Saad Mohammed\Documents\flask_app>烧瓶运行

  • 服务 Flask 应用“sample_app”(延迟加载)
  • 环境:生产 警告:这是一个开发服务器。不要在生产部署中使用它。 请改用生产 WSGI 服务器。
  • 调试模式:关闭 Traceback(最近一次通话最后一次):

文件“c:\python\python39\lib\runpy.py”,第 197 行,在 _run_module_as_main return _run_code(code, main_globals, None,

文件“c:\python\python39\lib\runpy.py”,第 87 行,在 _run_code 执行(代码,run_globals)

文件“C:\Python\Python39\Scripts\flask.exe_main_.py”,第 7 行,在

文件“c:\python\python39\lib\site-packages\flask\cli.py”,第 994 行,在 main cli.main(args=sys.argv[1:])

文件“c:\python\python39\lib\site-packages\flask\cli.py”,第 600 行,在 main return super().main(*args, **kwargs)

文件“c:\python\python39\lib\site-packages\click\core.py”,第 1053 行,在 main rv = self.invoke(ctx)

文件“c:\python\python39\lib\site-packages\click\core.py”,第 1659 行,在调用中 return _process_result(sub_ctx.command.invoke(sub_ctx))

文件“c:\python\python39\lib\site-packages\click\core.py”,第 1395 行,在调用中 return ctx.invoke(self.callback, **ctx.params)

文件“c:\python\python39\lib\site-packages\click\core.py”,第 754 行,在调用中 return __callback(*args, **kwargs)

文件“c:\python\python39\lib\site-packages\click\decorators.py”,第 84 行,在 new_func 中 return ctx.invoke(f, obj, *args, **kwargs)

文件“c:\python\python39\lib\site-packages\click\core.py”,第 754 行,在调用中 return __callback(*args, **kwargs)

文件“c:\python\python39\lib\site-packages\flask\cli.py”,第 849 行,在 run_command app = DispatchingApp(info.load_app, use_eager_loading=eager_loading)

文件“c:\python\python39\lib\site-packages\flask\cli.py”,第 324 行,在 __init__self._load_unlocked() 中

文件“c:\python\python39\lib\site-packages\flask\cli.py”,第 350 行,在 _load_unlocked self._app = rv = self.loader()

文件“c:\python\python39\lib\site-packages\flask\cli.py”,第 406 行,在 load_app app = locate_app(self, import_name, name)

文件“c:\python\python39\lib\site-packages\flask\cli.py”,第 260 行,在 locate_app import(module_name)

文件“C:\Users\Saad Mohammed\Documents\flask_app\sample_app.py”,第 37 行,在 “execution_count”:空,

NameError: name 'null' is not defined

如何消除这些错误

【问题讨论】:

  • 您能否尝试格式化此问题并将任何输出文本放入代码块中?目前很难阅读和理解问题所在。

标签: python flask


【解决方案1】:

Flask run 命令适用于 python 脚本 (.py),而不适用于 jupyter notebooks(.ipynb)。因此,您可以将代码从“sample_app.ipynb”重写为“sample_app.py”文件。 例如 sample_app.py 应包含以下代码:

from flask import Flask
app = Flask(__name__)


@app.route('/')
def index():
    return "<h1>Hello, World!</h1>"

if __name__ == '__main__':
    app.run(debug=True)

如果你注意 ipynb 文件的内容,你会发现那里使用了一个类似 json 的格式来存储计算的顺序。 例如 jupyter notebook 格式(.ipynb)的相同代码。

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from flask import Flask\n",
    "app = Flask(__name__)\n",
    "\n",
    "\n",
    "@app.route('/')\n",
    "def index():\n",
    "    return \"<h1>Hello, World!</h1>\"\n",
    "\n",
    "if __name__ == '__main__':\n",
    "    app.run(debug=True)\n",
    "\n",
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

这意味着我们需要在代码编辑器中创建新文件 sample_app.py 并从头开始编写代码。 之后将环境变量 FLASK_APP 指定为不带 .py 的“sample_app”。

export FLASK_APP=sample_app

终于开始运行服务器了。

$ flask run
 * Serving Flask app "sample_app"
 * 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)

编码不错!

【讨论】:

  • 我将文件从“sample_app.ipynb”重命名为“sample_app.py”,然后我尝试运行
  • 您需要在代码编辑器中创建新文件 sample_app.py 并从头开始编写代码,而不是重命名 jupyter notebook 文件
  • 还有一种方法可以在不使用代码编辑器的情况下在 jupyter notebook 本身上运行它,因为我正在观看 deeplizard 制作的深度学习课程视频,他们直接通过 jupyter notebook 运行该块代码跨度>
  • 没关系我得到它而不是打开笔记本我只需要在 jupyter notebook 中打开一个文本文件,然后将其保存为 .py 并在命令提示符下运行这些命令
猜你喜欢
  • 1970-01-01
  • 2021-12-22
  • 2020-04-16
  • 2022-06-25
  • 2021-06-10
  • 2017-05-02
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多