Как временно активировать virtualenv во время сеанса отладки без Python в VSCode? - PullRequest
0 голосов
/ 18 мая 2019

Итак ... вы знаете те времена, когда вы объясняете свою проблему другому человеку и вдруг приходите к ответу?Это один из тех моментов.Ниже мой оригинальный пост, всего в нескольких шагах от отправки, когда у меня появилась идея, которая, как оказалось, решила проблему!Читайте дальше ...


Я работаю над проектом на базе Electron, который я отлаживаю в VSCode.Часть этого кода порождает пару внешних сервисов, написанных на Python.Эти сервисы только что перешли с Python 2.7 на Python 3.7, и у меня для этой цели настроен virtualenv (я работаю над Ubuntu 16, где по-прежнему нужен 2.7, поэтому я не решаюсь переназначить python и pipдо новой версии).

Проблема в том, что мне нужен способ активировать virtualenv в начале сеанса отладки, как если бы электрон был запущен внутри оболочки bash (я активирую virtualenv в моем.Bashrc).Итак, мой вопрос: Как я могу активировать virtualenv во время сеанса отладки?

Для полноты вот моя текущая конфигурация запуска:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Electron Shell",
            "cwd": "${workspaceFolder}/dist",
            "runtimeExecutable": "${workspaceFolder}/dist/node_modules/electron/dist/electron",
            "runtimeArgs": ["app.js", "--remote-debugging-port=9222"],
            "protocol": "inspector",
        },
        {
            "type": "chrome",
            "request": "attach",
            "name": "Attach to Electron Shell",
            "port": 9222,
            "webRoot": "${workspaceFolder}/src",
            "timeout": 30000
        }
    ],
    "compounds": [
        {
            "name": "Debug Angular In Electron Shell",
            "configurations": [
                "Attach to Electron Shell",
                "Launch Electron Shell",
            ]
        }
    ]
}

1 Ответ

0 голосов
/ 18 мая 2019

Ответ, оказывается, состоит в том, чтобы просто сделать то, что делает сценарий activate: изменить PATH и сбросить PYTHONHOME. Вот так:

        {
            "type": "node",
            "request": "launch",
            "name": "Launch Electron Shell",
            "cwd": "${workspaceFolder}/dist",
            "runtimeExecutable": "${workspaceFolder}/dist/node_modules/electron/dist/electron",
            "runtimeArgs": ["app.js", "--remote-debugging-port=9222"],
            "protocol": "inspector",
            "env": {
                "PATH": "/path/to/virtualenv/folder/bin:${env:PATH}",
                "PYTHONHOME": null
            }
        },
...