Конфигурация запуска Python принимает "module"
вместо "program"
. Он используется в спецификациях отладки c Python приложениях , таких как Flask, Django и Scrapy. Вот пример для Flask приложения , который кажется похожим на то, что вы хотите:
{
"name": "Python: Flask",
"type": "python",
"request": "launch",
"module": "flask", # <---------------------
"env": {
"FLASK_APP": "app.py"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
...
}
Как видите, эта конфигурация определяет "env": {"FLASK_APP": "app.py"}
и "args": ["run", "--no-debugger","--no-reload"]
. Свойство "module": "flask"
используется вместо program
.
Итак, учитывая этот пример рабочего пространства с папкой Q
, содержащей ModuleA.ModuleB
:
$ tree .
.
├── Q
│ └── ModuleA
│ ├── __init__.py
│ └── ModuleB.py
└── .vscode
└── launch.json
, где ModuleB - :
import sys
if __name__ == "__main__":
print(*sys.argv)
Вы можете указать эту запуск. json конфигурацию как:
{
"name": "run-specific-module",
"type": "python",
"request": "launch",
"console": "integratedTerminal",
"cwd": "${workspaceFolder}/Q",
"module": "ModuleA.ModuleB",
"args": [
"123",
"abc",
]
},
Запуск, который дает этот вывод в терминале:
$ cd /path/to/Q ; env /path/to/python /path/to/.vscode/extensions/ms-python.python-2020.6.91350/pythonFiles/lib/python/debugpy/launcher 37343 -- -m ModuleA.ModuleB 123 abc
('/path/to/Q/ModuleA/ModuleB.py', '123', 'abc')
, что должно быть таким же, как:
$ python -m ModuleA.ModuleB 123 abc
('/path/to/Q/ModuleA/ModuleB.py', '123', 'abc')