Как выполнить сценарий оболочки, который устанавливает виртуальную среду Python при отладке с помощью vscode (Какие изменения мне нужно сделать, чтобы запустить.json)
Поэтому я использую vscode-remote в инсайдерах Visual Studio Code, но я думаю, что проблема, с которой я сталкиваюсь, связана с расширением vscode-python.
Поэтому я пытаюсь отладить файл Python. Таким образом, нормальное выполнение файла выглядит следующим образом:
я включаю или активирую виртуальную среду с помощью следующей команды:
source $HOME/.enn/enn.sh
но путь к виртуальной среде, как я вижу в файле оболочки: /home/ubuntu/venv/enn
и pythonPath это /home/ubuntu/venv/enn/bin/python
Таким образом, это файл оболочки, который активирует соответствующую виртуальную среду и устанавливает переменные среды, такие как export DOMAIN_ENDPOINT=http://s3.us-west-2.amazonaws.com
и т.п.
Итак, я захожу в соответствующий каталог и выполняю команду python:
python session_server.py --config_file=../path/to/file/test_config.hocon
И это работает.
Но когда я пытаюсь отладить, он начинает выдавать ошибки импорта. Так что я думаю, что в режиме отладки переменные среды не установлены и виртуальная среда Python не активирована. Как настроить виртуальную среду Python для настройки и настройки переменных среды. Так что я по сути спрашиваю, как выполнить ту же команду оболочки - source $HOME/.enn/enn.sh
во время отладки с помощью vscode
мой launch.json есть
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: ennsession_server",
"type": "python",
"request": "launch",
"program": "/home/ubuntu/path/to/file/session_server.py",
"console": "integratedTerminal",
"pythonPath" : "/home/ubuntu/venv/enn/bin/python",
"cwd" : "/home/ubuntu/path/to/directory/experiment",
"args": ["--config_file=../path/to/file/test_config.hocon"]
}
]
}
А также, как я указал pythonPath в settings.json для vscode как /home/ubuntu/venv/enn/bin/python
поэтому vscode при отладке вызывает автоматическую команду source /home/ubuntu/venv/enn/bin/activate
, Я не хочу, чтобы это вызывалось, но я хочу команду source $HOME/.enn/enn.sh
вызываться при отладке или открытии нового терминала. Как мне это сделать?
1 ответ
В настоящее время нет способа выполнить сценарий оболочки под отладчиком Python, потому что самому отладчику необходимо запустить сам код Python. Если сценарий оболочки активирует виртуальную среду и переменные среды, вы можете позволить расширению делать это от вашего имени при отладке.
Вы можете проголосовать за этот запрос, чтобы получить желаемую функциональность.