Запуск VSCode. json настройки для отладки python модулей - PullRequest
0 голосов
/ 05 августа 2020

В настоящее время моя файловая структура выглядит так:

├── Utilities
|   ├── __init__.py
│   ├── module1.py
├── main.py
├── global_var.py

В main.py и module1.py я уже написал import global_var, и все идет хорошо, когда я запускаю main.py.

Однако, когда я пытался отладить или запустить сам module1.py, он всегда показывает

Exception has occured: ModuleNotFoundError
No module names 'global_var'

, и мне приходится вручную перемещать module1.py в ту же папку с global_var.py, чтобы он может работать успешно.

Я хотел бы знать, как настроить launch.json, чтобы файлы не перемещались. Вот мой launch.json прямо сейчас:

{
    "name": "Python: Modules",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "cwd": "${workspaceFolder}",
    "console": "integratedTerminal"
}

1 Ответ

0 голосов
/ 05 августа 2020

Я не знаю, как называется родительская папка файла 'global_var.py', поэтому я временно назвал ее folder_aa.

Поскольку они не находятся в той же папке, VSCode не может найдите путь, чтобы вы могли указать ему путь к файлу, который вы хотите импортировать:

  1. Добавьте строку настроек в launch.json файл .vscode file:

    "env": {"PYTHONPATH" : "${workspaceRoot}"},

    VSCode найдет каталог root (имя папки проекта) текущего проекта в соответствии с "${workspaceRoot}".

  2. Используйте 'from folder_aa import global_var' вместо 'import global_var'.

    VSCode найдет файл 'global_var.py' из папки 'folder_aa'.

Я создал проект, похожий на предоставленную вами структуру каталогов, и с помощью описанных выше операций его можно успешно импортировать.

Моя среда: Python: 3.8.3; VSCode: 1.47.3; ОС: Windows_NT x64 10.0.18362

Если он по-прежнему не работает после запуска, предоставьте подробную информацию о полной структуре каталогов проекта.

...