Как выполнить сценарий оболочки, который устанавливает виртуальную среду Python при отладке с помощью vscode (Какие изменения мне нужно сделать, чтобы запустить .json) - PullRequest
0 голосов
/ 13 июня 2019

Так что я использую 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 Ответ

0 голосов
/ 14 июня 2019

В настоящее время нет способа выполнить сценарий оболочки в отладчике Python, поскольку самому отладчику необходимо запустить сам код Python. Если сценарий оболочки активирует виртуальную среду и переменные среды, вы можете позволить расширению делать это от вашего имени при отладке.

Вы можете проголосовать за запрос этой функции , чтобы получить желаемую функциональность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...