VSCode интегрированный контроль версий и предварительная фиксация

При использовании https://pre-commit.com с хуками VSCode, которые зависят от пакетов, установленных в Python venv. В предварительной фиксации можно указать использование системы в качестве среды. Это отлично работает с терминала с желаемым активным Venv.

Однако при использовании интегрированного управления версиями кажется, что осуществляется доступ к глобальному интерпретатору, и поэтому требуемые пакеты недоступны.

Есть ли здесь обходной путь? На данный момент я указываю путь точки входа / к / bin / python -m package в конфигурации предварительной фиксации. Однако я думаю, что интегрированный контроль версий также должен уважать, по крайней мере, выбранный интерпретатор.

Есть предположения?


person Martin Gran    schedule 15.10.2020    source источник


Ответы (2)


Посмотрите на небольшую панель задач в нижней части окна VS Code.

Нажатие Python "version" "32/64-bit" позволит вам выбрать доступных переводчиков (также показывает любой внутри venv)

введите описание изображения здесь

person K4R1    schedule 15.10.2020
comment
Не совсем. Если у вас есть крючок git (у меня с предварительной фиксацией), хуки работают из командной строки с активированным venv. Однако фиксация из интегрированной панели управления версиями в VSCode завершается ошибкой, поскольку она не находит требуемых пакетов (pylint, установленный внутри venv). Я установил интерпретатор VSCode на .venv / bin / python, но это ничего не меняет. - person Martin Gran; 15.10.2020
comment
вы можете показать свой файл конфигурации перед фиксацией? Вы, вероятно, захотите запускать свои хуки в изолированных виртуальных виртуальных машинах, поэтому не имеет значения, установлен ли у вас pylint в вашем venv. - person ignoring_gravity; 15.10.2020
comment
@MartinGran о, значит, вы имели в виду графический интерфейс внутри VS Code .... Пытался найти какое-либо расширение Git для VS Code, но похоже, что его нет для Git Hooks. - person K4R1; 15.10.2020

VSCode, кажется, волей-неволей выбирает, что уважает, а что нет. У меня такая же ситуация - фиксация на интегрированном терминале работает нормально; выполнение этого из боковой панели управления исходным кодом дает мне сообщение «Python не может быть найден» (которое появляется только после установки хука предварительной фиксации).

Я предполагаю, что вам придется методом проб и ошибок устанавливать pre-commit в каждую установку Python в вашей системе, пока вы не найдете, какую из них вызывает боковая панель.

person darda    schedule 04.05.2021