Код: Выделить всё
$ my-python-package --args ...
Я использую Visual Studio Code (VS Code) и попытались создать конфигурацию launch.json, но она работает только при непосредственном запуске определенного файла Python. Однако когда я пытаюсь запустить команду CLI, я сталкиваюсь с разными ошибками. В моем проекте нет файла main.py, и выполнение точки входа не дает никаких результатов.
Моя цель — запустить команду CLI и визуально отладить ее в VS. Код похож на отладку обычного файла Python.
Я пробовал различные конфигурации в launch.json, как предложено в разделе «Как отладить модуль Python в Visual Studio». Код launch.json, но ни один из них не сработал, поскольку мой проект не структурирован как традиционный модуль. Я также обратился за помощью к ChatGPT, но он продолжает предлагать выполнить точку входа, что тоже не работает.
РЕДАКТИРОВАТЬ
Мне удалось отладить пакет CLI с помощью сгенерированного исполняемого файла Python, расположенного в папке .venv/bin. Вот окончательная конфигурация launch.json:
Код: Выделить всё
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug python package CLI",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/.venv/bin/project-name", // Replace
with your package name
"args": [
"..."
],
"console": "integratedTerminal",
"cwd": "${workspaceFolder}",
"env": {},
"envFile": "${workspaceFolder}/.env",
}
]
}
1. Настройте виртуальную среду и установите пакет локально:
Код: Выделить всё
python -m venv .venv && source .venv/bin/activate && pip install -e .
2: Начните отладку, используя конфигурацию Debug Python CLI в VS Code, как показано в

Совет. Убедитесь, что указан путь к исполняемому файлу. (поле программы) указывает на правильный файл в каталоге bin вашей виртуальной среды (.venv/bin/project-name.py)
Надеюсь, это поможет!
Дополнительно
Если вы добавите if name == 'main': app() в файл точки входа, это тоже может работать. В моем случае при запуске CLI я сталкиваюсь с различными ошибками, но это может вам помочь. Благодарим Амадеуша Лю за возможное решение.
Подробнее здесь: https://stackoverflow.com/questions/790 ... tudio-code