Отладчик Python не работает в VSCode под venv

#python #visual-studio-code

#python #visual-studio-code

Вопрос:

У меня есть следующие настройки.json

 {
    "python.pythonPath": "C:\Users\james\OneDrive\Programming Projects\Python\webscraper\Scripts\python.exe",
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": true,
    "python.linting.pylintPath": "\Scripts\pylint.exe"
}
 

и следующая запись в launch.json:

 {
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File (Integrated Terminal)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}
 

Когда я перехожу к своему файлу, который я хочу отладить, и выбираю свой Python: Current File (Integrated Terminal) отладчик, он выделяет мои точки останова серым цветом и показывает это:

введите описание изображения здесь

Если, с другой стороны, я настроил новый интерпретатор, например:

 "C:\Users\james\AppData\Local\Programs\Python\Python39-32\python.exe"
 

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

введите описание изображения здесь

Вы знаете, где я могу ошибаться?

Комментарии:

1. ваша среда должна быть вложенным каталогом рабочей области, а не рабочей средой

2. Я не совсем уверен в действии. Вы имеете в виду, что мне нужно поместить все мои вещи в папку? Кстати, спасибо за ответ!

3. папка, которую вы открыли в VSC, — ЭТО среда, неправильно, это должна быть родительская папка среды

4. Должен ли я также иметь папку vscode в родительской папке?

5. ДА, workspaceFolder/.vscode

Ответ №1:

Здесь следует упомянуть несколько вещей:

В среде не должно быть ваших файлов, предполагается, что это то, что вы используете и выбрасываете по прихоти. Разместите файлы проекта за пределами создаваемой вами среды. Я выложил свой в виде папки с именем «env», которую я создал с помощью:

 py -m venv env
 

а затем, после того, как он был создан, я активировал его с помощью

 env/Scripts/activate
 

введите описание изображения здесь

Во-вторых, не забудьте убедиться, что ваша папка vscode находится в этой корневой папке, вот мои настройки для моей конфигурации, которые в итоге сработали.

введите описание изображения здесь

Это казалось действительно важным:

 "python.linting.pylintArgs": [
    "--init-hook",
    "import sys; sys.path.append('C:\Users\james\OneDrive\Programming Projects\Python')"
],
 

И на всякий случай было неясно, как теперь выглядит моя структура папок. папки main.py , logic , models и services — это мой собственный код. env Папка — это среда, созданная с помощью venv :

введите описание изображения здесь

Просто дополнительный бонус, не забудьте создать requirements.txt в нем хранятся библиотеки, которые вы используете в своем проекте

введите описание изображения здесь

Затем вы можете установить его с помощью:

 py -m pip install -r requirements.txt