Visual Studio Code не видит виртуального окружения

На машине установлены две версии python. 3.8 и 3.9. В Path прописана 3.9, потому по умолчанию всё открывается как последняя версия. Создавал виртуальную среду для проекта как через командную строку, так и через сам VSCode, активировал. Редактор не подгружает её. То есть в строке состояния вместо ..\venv\Scripts\python.exe, показывает С:\python39\python.exe. Пробовал вручную указать на файл питона внутри проекта, но вместо этого он подгружает виртуальную среду из питона 3.8, хотя версия питона в проекте 3.9. Открывал, закрывал VScode, открывал через папку проекта - бесполезно. Может у меня с настройками редактора что-то не то? Подскажите куда нужно смотреть. введите сюда описание изображения


Ответы (1 шт):

Автор решения: Константин

Он не должен ничего подгружать, после того как активировали так

conda activate ./myenv 

запуск Питона в shell (у меня анаконда)

python app.py 

python.exe находит в myenv. Обязательно только изнутри virtualenv shell запускать(иначе может бинарники например numpy не подгрузить)(автоматизировать можно только запуск у меня анаконда консоли). Проверять версию Питона:

python --version

Куда настроены либы импрортов:

import sys
print(sys.path)

Хотя если это не anaconda, попробуйте переопределить путь так(1 строка), Настраиваем ./.vscode/settings.json так:

{
"python.pythonPath": "myenv\\python.exe"
"terminal.integrated.shell.windows" : "C:\\Windows\\system32\\cmd.exe",
"terminal.integrated.shellArgs.windows": [
"/K","activate.bat"
]
}

Потом правой кнопкой мыши на запускаемом скрипте и Run Python File in Terminal. Так запускал anaconda (venv) проекты, пока numpy pyd не перестали грузится, теперь все через shell.Оказывается можно автоматизировать, после того как shell активировали(или через cmd или через settings.json)->Потом правой кнопкой мыши на запускаемом скрипте и Run Python File in Terminal.Все работает. PS.Бывает что даже после этого не видит(у меня было что виртуальное окружение было в другой папке), перезагрузка, просит ввести тот же самый интерпретатор (что у же есть в settings.json), вводим то же самый, видимо считывает, работает.

→ Ссылка