У меня есть каталог проекта со следующей структурой:
.
├── .gitignore
├── .vscode
│ └── settings.json
├── README.md
├── container1
│ ├── .vscode
│ │ └── settings.json
│ ├── main.py
│ ├── module1
│ │ ├── __init__.py
│ │ └── module1.py
│ └── venv1
│ ├── bin
│ ├── include
│ ├── lib
│ └── pyvenv.cfg
├── container2
│ ├── .vscode
│ │ └── settings.json
│ ├── main.py
│ ├── module2
│ │ ├── __init__.py
│ │ └── module2.py
│ └── venv2
│ ├── bin
│ ├── include
│ ├── lib
│ └── pyvenv.cfg
├── docker-compose.yaml
└── project.code-workspace
Мне нужен интерпретатор Python для переключения между venv1 и venv2, когда я перемещаюсь между контейнером 1 и контейнером 2, и мне нужно, чтобы интерпретатор знал о локальных модулях, т. е. в контейнере 1 он должен знать модуль 1 . До сих пор мне удавалось добиться этого, создав новое окно VSCode, а затем добавив папку «container1» в рабочую область, установив интерпретатор как venv1, а затем проделав то же самое с контейнером2. Чтобы иметь возможность видеть локальные модули, у меня есть файл .vscode/settings.json в каждой папке контейнера с таким содержимым:
{
"python.autoComplete.extraPaths": ["./container1"],
"python.analysis.extraPaths": ["./container1"],
}
Проблема в том, что этот подход не позволяет мне добавлять отдельные файлы, такие как README.md или docker-compose.yaml, в рабочую область. . Поэтому вместо этого мне нужно добавить весь корневой каталог в рабочую область, но чтобы избежать повторного добавления папок контейнера1 и контейнера2, мне нужно добавить следующее в корневой каталог settings.json
{
"files.exclude": {
"container1":true,
"container2":true
}
}
Весь этот рабочий процесс действительно неприятен. Есть ли лучший способ добиться всего этого?
РЕДАКТИРОВАТЬ: похоже, сейчас это не работает:
{
"python.autoComplete.extraPaths": ["./container1"],
"python.analysis.extraPaths": ["./container1"],
}
или
{
"python.autoComplete.extraPaths": ["${workspaceFolder}/container1"],
"python.analysis.extraPaths": ["${workspaceFolder}/container1"],
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ace-vscode