Использование venv - VS Отладка кода не видит все установленные пакеты pip - PullRequest
0 голосов
/ 11 февраля 2019

Выполнение кода VS в Windows с Python 3.7.2 32bit в среде venv.Я искал и искал, либо я что-то делаю неправильно, либо VS Code не будет делать то, что я хочу.

Отладчик кода VS, работающий под "Python: Current File (Integrated Terminal)", не находит пакеты, установленные с помощью pip install внутри моего (env).На самом деле, похоже, что пакеты вообще не устанавливаются в виртуальной среде.

Всякий раз, когда я пытаюсь отладить один файл py, отладчик говорит мне, что не может найти пакет, который я установил, используя pip.Я установил пакеты внутри venv (env), или так я думал.Однако при запуске pip list с активным (env) отображается тот же список, что и при его деактивации.

Я заметил, что выполнение pip install при активном (env) не всегда приводит к установке пакета в моей среде.pip list покажет это, но pip show покажет это в Python appdata\local\programs\python\python37-32\lib\site-packages.

Я создаю среды, используя python -m venv env внутри терминала vs code (либо оболочка python, либо оболочка git bash).Он показывает (env) как активный, поэтому я не уверен, что делаю.

Я не изменил конфигурацию launch.json: { "name": "Python: Current File (Integrated Terminal)", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" }

VS Код показывает, что я использую правильный интерпретатор venv:

Python 3.7.2 32-bit ('env': venv)

Запуск сценария непосредственно в терминале VS Code python script.py работает правильно каждый раз.

Копирование пакетов вручную из:

appdata\local\programs\python\python37-32\lib\site-packages

в

env\lib\site-packages

позволяет отладчику работать без ошибок.Это здорово, и это обходной путь, но, похоже, проблема скорее в том, что мой venv на самом деле не действует как venv.

Я не вижу проблем с venv на моих Linux-машинах,но они в основном без головы, поэтому я не использую VS Code.

Есть идеи, что мне не хватает?Спасибо за любую помощь.

1 Ответ

0 голосов
/ 14 августа 2019

Вы пробовали добавить:

"justmycode": false

в конфигурации отладки?По умолчанию он имеет значение true и позволяет только отлаживать ваши собственные файлы.Вот мой конфиг:

    {
        "name": "Python: Current File (Integrated Terminal)",
        "type": "python",
        "request": "launch",
        "program": "${file}",
        "console": "integratedTerminal",
        "justMyCode": false
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...