使用路径设置自定义启动器作为 VS 代码中的参数值(Flask - 证书路径)
Setup custom launcher with paths as a param values in VS Code (Flask - certificate path)
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/cert 提供为:
- C:\\FULL_PATH\\TO\\FILE
- C:/FULL_PATH/TO/FILE
- 'C:\FULL_PATH\TO\FILE'
- \"C:\FULL_PATH\TO\FILE\"
而且我总是收到以下错误消息之一:
Error: Invalid value for "--key": "--cert" must also be specified.
或 Error: Invalid value for "--key": File ""E:\Docs\learn_py\viberbot\key.pem"" does not exist.
这是 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
}
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/cert 提供为:
- C:\\FULL_PATH\\TO\\FILE
- C:/FULL_PATH/TO/FILE
- 'C:\FULL_PATH\TO\FILE'
- \"C:\FULL_PATH\TO\FILE\"
而且我总是收到以下错误消息之一:
Error: Invalid value for "--key": "--cert" must also be specified.
或 Error: Invalid value for "--key": File ""E:\Docs\learn_py\viberbot\key.pem"" does not exist.
这是 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
}