Код Visual Studio и pipenv: «оболочка pipenv» вместо «источника»

#python #visual-studio-code #pipenv

#python #visual-studio-code #pipenv

Вопрос:

Я использую удаленный SSH на VSCode, на удаленном сервере Linux у меня есть python3.6, и я создал несколько сред pipenv

Через некоторое время я понял, как заставить и линтер (pylint), и интерпретатор работать в среде pipenv.

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

У меня проблемы с тем, что после открытия рабочей области интерпретатор выбирается с помощью команды «source», а не «pipenv shell», и это приводит к тому, что переменные, хранящиеся в локальном файле .env, не вызываются.

Чтобы преодолеть это, мне нужно вручную запустить «оболочку pipenv», и pipenv идентифицирует уже существующую и активную среду и загружает только переменные из файла .env

Как вы можете видеть, это может работать, но в последней части беспорядочно, есть ли способ заставить VSCode запускать правильную «оболочку pipenv», а не «источник»?

Комментарии:

1. Эти команды выполняют очень разные вещи. pipenv shell запускает новую оболочку, в то время как source редактирование activate скрипта перенастраивает вашу существующую оболочку для использования virtualenv. Я оставлю этот вопрос для ответа тому, кто знает VSCode, но меня не удивило бы, если бы способ взаимодействия VSCode с дочерним процессом через SSH предполагал, что эта фактическая оболочка (а не дочерний запуск!) будет использоваться для выполнения команды.

2. Чтобы привести вам пример: вы можете сделать ssh somehost '. foo/bin/activate; myscript' , но вы не можете сделать ssh somehost 'cd foo || exit; pipenv shell; myscript' myscript команда не будет достигнута до тех пор, пока новая оболочка, запущенная pipenv shell , не завершится.

3. Существует открытая проблема , касающаяся интерпретаторов python.