【问题标题】:vscode running tasks in sequence in a virtual environmentvscode在虚拟环境中按顺序运行任务
【发布时间】:2022-11-06 10:04:34
【问题描述】:

问题

如何让 vscode 任务的命令在另一个任务创建的 python 虚拟环境/shell 中运行?

例子

我正在尝试使用 vscode 依次运行几个任务。

  1. 第一个任务将运行命令pipenv shell。
  2. 第二个任务需要在第一个任务创建的虚拟环境中运行。

    只有当我通过在创建的 shell 中运行 exit 手动退出第一个任务创建的虚拟环境时,第二个任务才会运行。 大概是因为它正在等待第一个任务完成 - 但第一个任务仅在进程结束时完成(当我运行 exit 时)。

    任务.json

    {
      "tasks": [
        {
          "label": "first task",
          "type": "shell",
          "command": "pipenv shell",
          "presentation": {
            "panel": "shared",
          },
        },
        {
          "label": "second task",
          "type": "shell",
          "command": "<some_command>",
          "presentation": {
            "panel": "shared",
          },
        },
        {
          "label": "combine tasks",
          "type": "shell",
          "command": "echo hello",
          "dependsOrder": "sequence",
          "dependsOn": ["first task", "second task"],
        },
      ],
    }
    

【问题讨论】:

  • 为什么不使用venv 虚拟环境?如果您选择正确的 python 解释器,VSC 将为您激活 VirtEnv
  • @rioV8 - 我认为 OP 遇到了同样的问题 - 如果我在 vscode 中手动创建一个新终端,它将在 .venv 中运行它。即已配置。但是任务外壳命令没有继承相同的环境......所以我也一直在尝试链接命令,因为我一生都无法弄清楚如何让 venv 为我的命令行命令激活。

标签: python visual-studio-code pipenv vscode-tasks


【解决方案1】:

第一个任务是为您使用的正确终端激活虚拟环境(Powershell、cmd、bash、....)

然后依次运行附加的终端任务。

我将 Powershell 和 Python venv 用于虚拟环境

我使用了这些任务(没有终端处于活动状态),它们在带有&gt; Executing task、Terminal will be reused by tasks 文本的终端变体中运行。

    {
      "label": "Activate python venv",
      "type": "shell",
      "command": "c:/Project/Python/.venv/Scripts/Activate.ps1",
      "problemMatcher": []
    },
    {
      "label": "pip list",
      "type": "shell",
      "command": "pip list",
      "problemMatcher": []
    },
    {
      "label": "combine Python",
      "type": "shell",
      "dependsOrder": "sequence",
      "dependsOn": ["Activate python venv", "pip list"],
      "problemMatcher": []
    }

它将列出虚拟环境中安装的所有软件包。

【讨论】:

    猜你喜欢
    • 2021-12-28
    • 2021-02-11
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 2014-08-12
    • 2015-08-31
    • 1970-01-01
    相关资源
    最近更新 更多