Как я могу изменить пакеты python по умолчанию, доступные для git в vscode? - PullRequest
0 голосов
/ 21 июня 2020

Я работаю над обработкой commit-msg git. Работает все, кроме импорта определенных c модулей. Плохое поведение связано с использованием c панели vs-кода GUI git (маленькая галочка в верхней части панели управления исходным кодом) с установленными модулями pip. Если я использую git commit -m "some message" через терминал, все работает отлично. Но когда я использую vs-код GUI, я получаю сообщение об ошибке импорта.

Думая, что это может быть проблема со средой, я обеспечил глобальную доступность необходимого модуля, pip install вставив нужный модуль на мою машину вне виртуальной среды. Это не помогло.

Чтобы увидеть, что происходит, я протер свой крючок и заменил его не более чем help("modules"), чтобы проверить, действительно ли там были мои модули. Они не были. Итак, я запустил

import os
dir_path = os.path.dirname(os.path.abspath(__file__))
print(dir_path)

Это напечатало мой путь к запускаемому файлу и был ожидаемым путем. Я открыл новый терминал вне vs-кода без включенной виртуальной среды и запустил python3 path/to/file, чтобы увидеть, появится ли там мой модуль. Так и было.

Кроме того, он есть, если я также запустил его в терминале vs-code. Единственное место, где он, кажется, отсутствует, - это то место, где vs-code git GUI извлекает свой список пакетов.

Где vs-code git получает его python список пакетов и как можно Я гарантирую, что либо; 1) он указывает на мой обычный список пакетов python или 2) я могу добавить необходимые модули в его путь?

Спасибо

EDIT: Благодаря интеллектуальному Предложение Джона Закмейстера оставлено в комментариях, я настроил свой хук на вызов env. Затем я инициировал ловушку через терминал и через GUI для сравнения.

Использование GUI добавляет несколько переменных, в основном для целей ведения журнала и обработки ошибок. Но есть пара, которую я не совсем понимаю, чем они занимаются. APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL=true и ELECTRON_RUN_AS_NODE=1

Однако, поскольку он работает в терминале, а не GUI, я должен предположить, что добавленные переменные не являются виновником. Итак, вместо этого я смотрю на то, что отличается от одного от другого. За исключением дополнительных переменных c, специфичных для VS-кода, на самом деле не так уж много изменений.

Уровень оболочки - от 2 до терминала, но только от 1 до GUI (интересно .. .) В терминале есть дополнительные переменные TERM=xterm-256color и TERM_PROGRAM_VERSION=1.46.0, которых нет в GUI env. Кроме того, в терминале заданы некоторые цвета, но не GUI.

Наконец, есть одна переменная, которая в обоих случаях отличается. GUI дает _=/usr/share/code/code, а терминал дает _=/usr/bin/git. Я предполагаю, что это относится к тому, какая программа инициировала терминал, но я не смог это проверить.

Вот и все. PATH одинаково для обоих, как и SHELL, как и почти все переменные GIT_anything (за исключением того факта, что GUI устанавливает пейджер, которого нет на терминале)

...