python - 在 VS Code 中使用路径作为参数值设置自定义启动器(Flask - 证书路径)

标签 python flask visual-studio-code vscode-debugger

Visual Studio Code python setup tutorial中有一个例子它展示了如何设置Flask。当我尝试提供自签名证书路径时,我的问题就开始了。我尝试添加以下配置:

    {
        "name": "Python: Flask",
        "type": "python",
        "request": "launch",
        "module": "flask",
        "env": {
            "FLASK_APP": "app.py"
        },
        "args": [
            "run",
            "--debugger",
            "--no-reload",
            "--host",
            "0.0.0.0",
            "--port",
            "4443",
            "--key",
            "${workspaceFolder}\\viberbot\\key.pem",
            "--cert",
            "${workspaceFolder}\\viberbot\\certificate.pem"
        ],
        "jinja": true
    },

我尝试提供 key /证书:

  • C:\\FULL_PATH\\TO\\FILE
  • C:/FULL_PATH/TO/FILE
  • 'C:\\FULL_PATH\\TO\\FILE'
  • \"C:\\FULL_PATH\\TO\\FILE\"

我总是收到以下错误消息之一: 错误:“--key”的值无效:还必须指定“--cert”。错误:“--key”值无效:文件“E:\Docs\learn_py\viberbot\key.pem”不存在。

这是 VS Code 扩展生成的确切命令:

cd e:\Docs\learn_py && cmd /C "set "FLASK_APP=app.py" && set "PYTHONIOENCODING=UTF-8" && set "PYTHONUNBUFFERED=1" && C:\Users\user\AppData\Local\Programs\Python\Python37\python.exe c:\Users\user.vscode\extensions\ms-python.python-2019.2.5558\pythonFiles\ptvsd_launcher.py --default --client --host localhost --port 50573 -m flask run --debugger --no-reload --host 0.0.0.0 --port 4443 --key E:\Docs\learn_py\viberbot\key.pem --cert E:\Docs\learn_py\viberbot\certificate.pem " Usage: python -m flask run [OPTIONS] Try "python -m flask run --help" for help.

Error: Invalid value for "--key": "--cert" must also be specified.

更新:在进行 Brett 建议的更改后,我开始收到另一个错误:

 * Serving Flask app "app.py"
 * Environment: development
 * Debug mode: off
Usage: python -m flask run [OPTIONS]

Error: Could not import "app".

我尝试将 app.py 更改为 ${workspaceFolder}\\viberbot\\app.py 或提供类似 /E/的路径path/viberbot/app.py 但它不起作用。

更新2:我需要做"FLASK_APP": "viberbot\\app.py"

最佳答案

这可能是因为与 VS Code 提供的默认示例相比,教程中的示例已经过时。尝试:

{
            "name": "Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "app.py",
                "FLASK_ENV": "development",
                "FLASK_DEBUG": "0"
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload",
                "--cert",
                "${workspaceFolder}\\viberbot\\certificate.pem",
                "--key",
                "${workspaceFolder}\\viberbot\\key.pem"
            ],
            "jinja": true
        }

关于python - 在 VS Code 中使用路径作为参数值设置自定义启动器(Flask - 证书路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55156388/

相关文章:

python - Dijkstra - 最近邻确定

python - Flask 应用程序停止使用 gunicorn 和主管与数据库通信

css - 使用 Flask 在 <noscript> 标签内加载 css 样式表

visual-studio-code - yq 失败并显示 "permission denied"

python - 在 python 中编写一个新的文本文件

python - 在 Django-Rest Framework 中使用序列化器

visual-studio-code - 当 Pane 中的最后一个文件关闭时,防止 Visual Studio Code 更改窗口布局?

git - 是否可以仅恢复提交的代码块更改?

Python:如何在打印中递归应用 __str__

python - 是否可以在 python 中将动态(带有静态文件)Web 应用程序作为没有其他依赖项的单个包提供服务?