【问题标题】:How to get Flask application working in VS Code?如何让 Flask 应用程序在 VS Code 中工作?
【发布时间】:2020-10-13 11:16:27
【问题描述】:

我已将example from the Flask-RESTful quick start page 复制到文件run.py 并从命令行启动它,效果很好:

mfb@Areion:/data/Development/Python/MLserver$ python server/run.py 
 * Serving Flask app "run" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 167-198-829

但是,当我从 VS Code 开始执行此操作时,我会收到以下输出和错误消息:

mfb@Areion:/data/Development/Python/MLserver$  cd /data/Development/Python/MLserver ; env /usr/local/bin/python /home/mfb/.vscode/extensions/ms-python.python-2020.6.89148/pythonFiles/lib/python/debugpy/launcher 34441 -- /data/Development/Python/MLserver/server/run.py 
 * Serving Flask app "run" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
No module named run

为什么找不到名为“run”的模块?
我的启动配置中需要一些东西吗? 目前它看起来像这样:

"configurations": [
    {
        "name": "Start MLserver",
        "type": "python",
        "request": "launch",
        "program": "${workspaceFolder}/server/run.py",
        "env": {
            "FLASK_ENV": "development",
        },
        "console": "integratedTerminal"
    }

顺便说一句。通过 Ctrl+F5 启动时确实有效,因此该错误与 VS Code 调试器有关。

【问题讨论】:

标签: python flask visual-studio-code


【解决方案1】:

python 需要知道 Flask App 在哪里

编辑配置并将 FLASK_APP 变量添加到 env

*edit 替换配置为

"configurations": [
  {
    "name": "Python: Flask",
    "type": "python",
    "request": "launch",
    "module": "flask",
    "env": {
      "FLASK_APP": "server/run.py",
      "FLASK_ENV": "development",
      "FLASK_DEBUG": "0"
    },
    "args": ["run", "--no-debugger", "--no-reload"],
    "jinja": true
  }
]

观看这将对本主题有所帮助

Setting Up a Flask Application in Visual Studio Code

【讨论】:

  • 当我将FLASK_ENV 变量添加到启动配置时,我在最后一行app.run(debug=True) 中收到“发生异常:OSError:[Errno 98] 地址已在使用”错误。
  • 好的,这意味着它已经开始运行应用程序,你可能会在同一端口上运行另一个网络应用程序,你可以将它编辑到 app.run(debug=True , port=4040)
  • 抱歉,这是我的错,我运行了这个应用程序的旧实例。但是,添加 FLASK_APP 环境。变量不能解决我的问题,仍然出现“No module named run”错误。
  • 尝试用答案中编辑的替换所有配置
  • 就是这样,非常感谢。当我从args 行中删除--no-debugger--no-reload 选项时,它甚至现在运行。谢谢!
猜你喜欢
  • 2018-08-16
  • 1970-01-01
  • 2021-08-29
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 2022-01-08
相关资源
最近更新 更多