Azure 自托管 windows 代理,使用中的{工具文件}是什么 Python 版本配置?

Azure self hosted windows agent, What is the {tool files} in Use Python Version configuration?

更新:

既然我尝试了答案中的解决方案,请尝试

python -m ensurepip
python -m pip install --upgrade pip
pip install tox poetry

我意识到自托管 windows 代理显然甚至没有 python。我按照 azure: use python version

的说明进行操作

他们说方向结构之类的话。

$AGENT_TOOLSDIRECTORY/
Python/
    3.6.4/
        x64/
            {tool files}
        x64.complete

令人困惑的是 {tool files} 的定义 最初,我从网站 下载了 python 可执行文件,这给了我一个 .exe 文件。所以我在 c:/agent/_work/_tool/ 中创建了一个文件夹结构,如下所示

$AGENT_TOOLSDIRECTORY/
    Python/
        3.9.9/
            x64/
                python_3.9.9-amd64.exe
            x64.complete

因为这绝对不是正确的做法。我不确定{工具文件}的定义是什么。我目前卡在如何在自托管 windows 代理上正确安装 python。

然后我尝试按照中的建议使用 venv 创建文件夹架构 Link。由于演示是针对Linux的,所以venv安装结果不一样。没有创建 bin 文件夹。而是创建了一个 pyvenv.cfg 文件。此 venv 配置引用了 python 最初安装的路径。我做的时候文件夹结构如下

$AGENT_TOOLSDIRECTORY/
Python/
    3.6.4/
        x64/
            Include/
            Libs/
            Scripts/
            pyvenv.cfg
        x64.complete

这使得下面讨论的 powershell 任务失败,如下所示。从 cfg 文件中,powershell 试图在 users' folder istead of the _tool` 文件夹中寻找 python。

我在这里迷路了,感谢任何帮助。 非常感谢。

+++++++++++++++++++++++++++++++++++++++++++++ ++++++++++

较早的一期:

我正在尝试使用自托管 Windows 代理为我的 python 项目创建管道。 这是我存储库的 link,您可以在其中找到 azure yml 文件。 https://GringottsFinance@dev.azure.com/GringottsFinance/NLNETSalaryCalculator.Py/_git/NLNETSalaryCalculator.Py

为了与 tox 相关的步骤,我创建了这个模板

    parameters:
      PythonVersion: ''
      ToxEnvironment: ''
    
    steps:
      - checkout : self
        fetchDepth: 1
    
      - task: UsePythonVersion@0
        displayName: Use Python Version ${{ parameters.PythonVersion }}
        inputs:
          versionSpec: ${{ parameters.PythonVersion }}
        condition: succeeded()
    
      - powershell: pip install tox poetry
        displayName: Install Tox and Poetry
        condition: succeeded()
    
      - powershell: tox -r -e ${{ parameters.ToxEnvironment }}
        displayName: Run the give Tox Environment
        condition: succeeded()

我的问题是,即使 python 版本 3.9.9 已成功安装到代理中,PowerShell 似乎找不到 pip。

None 的解决方案似乎有效。感谢您的帮助。

Azure self hosted windows agent's powershell can not find pip

我可以在我这边重现这个问题。

您可以使用以下命令解决该问题:

python -m ensurepip
python -m pip install --upgrade pip
pip install tox poetry

测试结果:

好的,我找到了如何成功安装 windows self-hosted 代理并在其中配置 python 的解决方案。

步骤如下。

  1. 在配置 windows-agent-pool 的文件夹中创建如下文件夹结构。
$AGENT_TOOLSDIRECTORY/
Python/
    3.9.9/
        x64/
            {tool files}
        x64.complete

棘手的部分来了

{tool files} 是什么意思。这是对我有用的。

  1. 我从 python-3.9.9-amd64.exe - Click to download
  2. 下载了 python 的 windows 安装程序
  3. 运行 可执行文件。
  4. 选择自定义安装(非常重要
  5. Select 所有出现的复选框。
  6. Select以上文件夹位置为您要安装的目录python。即我们刚刚创建的目录。所以python的安装位置应该是$AGENT_TOOLSDIRECTORY/Python/3.9.9/x64/

P.S。如果您在安装代理时遵循了 Microsoft 说明。你的 $AGENT_TOOLSDIRECTORY 只是 C:/agent/_work/_tool/。所以 python 的安装路径应该是 C:/agent/_work/_tool/Python/3.9.9/x64/

Ufff...这只花了我三个不眠之夜才搞清楚。希望你们中的一些人能找到更好的答案。

谢谢。