Ошибка "Нет модуля с именем manage" при попытке отладки приложения Werkzeug Django в VSCode

Как сказано в заголовке. У меня есть приложение Django, которое использует Werkzeug для включения https. У меня есть следующий launch.json, установленный:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "python": "${workspaceFolder}/venv/Scripts/python.exe",
            "program": "${workspaceFolder}\\appname\\manage.py",
            "args": [
                "runserver_plus",
                "--cert-file",
                "${workspaceFolder}/certs/cert.pem",
                "--key-file",
                "${workspaceFolder}/certs/key.pem"
            ],
            "justMyCode": false,
            "django": true
        }
    ]
}

Когда я запускаю это через отладчик VSCode, он немедленно завершает работу в функции get_wsgi_application() с сообщением "No module named manage". Я попробовал погуглить, но ни один ответ не оказался полезным. Есть идеи, что я делаю не так?

попробуйте это

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "python": "${workspaceFolder}/venv/Scripts/python.exe",
            "program": "${workspaceFolder}/manage.py",
            "args": [
                "runserver",
            ],
            "justMyCode": false,
            "django": true
        }
    ]
}

manage.py находится в базовом каталоге проекта. Таким образом

            "program": "${workspaceFolder}\\manage.py",

Попробуйте добавить каталог, в котором находится manage.py, в свой путь. Таким образом вы предоставляете права доступа к вашей папке.

Эта проблема характерна только для отладчика VS Code и возникает из-за неправильного пути в переменной PYTHONPATH. Следовательно, эта проблема не возникнет, если вы запустите его из shell.

В вашем случае вам нужно добавить новый атрибут с именем env в конфигурацию launch.json, который добавит переменную окружения . В ней нужно обновить PYTHONPATH, поскольку manage.py находится не в корневой папке проекта:

"configurations": [
        {"env": {
                "PYTHONPATH": "${workspaceRoot}\\appname"
            },
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}\\appname\\manage.py",
            "args": [
                "runserver_plus"
            ],
            "django": true,
            "justMyCode": false
        }
    ]
}
Вернуться на верх