#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.