Код VS | Python программа | процесс импорта модуля не происходит - PullRequest
0 голосов
/ 07 мая 2020

Environment

У меня есть Python Quickstart в VS Code как часть мульти- root рабочего пространства. Я вручную добавил 3 файла; задачи. json, настройки. json и запуск. json.

Неожиданное поведение

Когда я отлаживаю проект, основной скрипт не работает из-за отсутствия модулей . Это связано с тем, что при запуске модули, перечисленные в requirements.txt , не устанавливаются.

Задачи. json

{
    "version": "2.0.0",
    "tasks": [
      {
        "label": "pipInstall",
        "type": "shell",
        "osx": {
          "command": "${config:python.pythonPath}/bin/python -m pip install -r requirements.txt"
        },
        "windows": {
          "command": "${config:python.pythonPath}\\Scripts\\python -m pip install -r requirements.txt"
        },
        "linux": {
          "command": "${config:python.pythonPath}/bin/python -m pip install -r requirements.txt"
        },
        "problemMatcher": [],
        "options": {
          "cwd": "${workspaceFolder}"
        }
      }
    ]
  }

Запуск. json

    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}\\batch-python-quickstart\\src\\python_quickstart_client.py",
            "console": "integratedTerminal"
        }
    ]
}

Настройки. json

{
    "python.pythonPath": "C:\\Python Virtual Environments\\myenvid\\.venv\\Scripts\\python.exe"
}

1 Ответ

0 голосов
/ 07 мая 2020

Почему модули не были установлены

Модули, указанные в файле require.txt, не были установлены, потому что не было ссылки на задачи . json в запуск. json. Для выполнения задач перед выполнением python приложению требуется "preLaunchTask": "pipInstall" для ссылки на задачу с именем pipInstall в задачах. json.

Код после изменений

Примечание : Я также исправил некоторые неправильные пути и переместил свои виртуальные среды в новый каталог за пределами моих проектов.

Настройки. json

{
    "python.pythonPath": "C:\\thepath\\.venv\\Scripts\\python.exe"
}

Запуск. json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}\\batch-python-quickstart\\src\\python_quickstart_client.py",
            "console": "integratedTerminal",
            "preLaunchTask": "pipInstall"
        }
    ]
}

Задачи. json

{
    "version": "2.0.0",
    "tasks": [
      {
        "label": "pipInstall",
        "type": "shell",
        "osx": {
          "command": "${config:python.pythonPath}/bin/python -m pip install -r requirements.txt"
        },
        "windows": {
          "command": "${config:python.pythonPath} -m pip install -r requirements.txt"
        },
        "linux": {
          "command": "${config:python.pythonPath}/bin/python -m pip install -r requirements.txt"
        },
        "problemMatcher": [],
        "options": {
          "cwd": "${workspaceFolder}\\batch-python-quickstart\\src"
        }
      }
    ]
  }

Кроме того,

Можно каскадировать задачи, добавляя то же свойство зависимости внутри задачи; "dependsOn": "othertasklabel". Идеально подходит для набора этапов сборки.

...