将Python安装到自托管Windows构建代理

时间:2020-03-30 17:29:39

标签: python azure-devops build-agent azure-devops-self-hosted-agent

我已经安装了Windows代理,并且需要能够运行Python脚本。我知道我需要安装Python,但我不知道如何安装。

我将标准安装中的Python文件添加到

final

重新启动代理,但是现在怎么办?如何把它变成能力? 我想念的是什么?

编辑: 我需要运行此YAML任务

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

3 个答案:

答案 0 :(得分:1)

我已在 Windows 10 笔记本电脑上设置了自托管代理(我具有 管理员 访问权限),并且正在运行 Azure DevOps Express 2020

我根据 Download and configure the agent 上的说明找到、下载并安装了代理。我使用了 vsts-agent-win-x64-2.170.1.zip 并将其设置为作为服务运行,(我猜任何手动运行它的人都需要仔细检查它是否在放映时间运行)。我还在 powershell 中以 admin 身份运行安装命令

要安装 Python 版本,我需要从 ftp site at Python.org 下载适当的安装程序,例如。对于 3.7.9,我使用了 python-3.7.9-amd64.exe。 然后我从命令行运行它(CMD 以管理员身份运行without UIpython-3.7.9-amd64.exe /quiet InstallAllUsers=0 TargetDir=$AGENT_TOOLSDIRECTORY\Python\3.7.9\x64 Include_launcher=0python docs 中提供了其他安装选项)

一旦完成,(它在后台运行,因此需要比初始命令更长的时间),您需要创建一个空的 {platform}.complete 文件(如 here 所述),在我的情况下是 x64.complete

然后就成功了!我确实为第一个版本重新启动了服务器,但是我已经添加了其他 python 版本,因为不需要。我的管道任务很简单:

steps:
- task: UsePythonVersion@0
  displayName: 'Use Python $(python.version)'
  inputs:
    versionSpec: '$(python.version)'

(使用变量 python.version 将我们设置为版本列表 3.7.9, 3.8.8

对我来说一个关键要素是文件结构,其中文档说 {tool files} 这意味着 python.exe 文件和其他常见目录,如 Lib 和脚本。我最初将它们安装在一个不起作用的子目录中。所以它应该是这样的:

$AGENT_TOOLSDIRECTORY/
    Python/
        3.7.9/
            x64/
                Doc/
                Lib/
                Scripts/
                python.exe
                ...etc...
            x64.complete

老实说,我感到很欣慰,因为这没有太多麻烦。我放弃了让 Artifacts 在本地工作的尝试。根据我有限的经验,所有这些在云版本上都更容易、更好。还没有说服我的雇主采取这一飞跃但是...

答案 1 :(得分:0)

对于此问题,为了使用在本地计算机上安装的python版本。您要么需要指向cmd任务中的python.exe物理路径。或在Powershell任务中手动将python.exe路径添加到环境变量路径。例如:

要在Powershell任务中使用本地python:

$env:Path += ";c:\{local path to}\Python\Python38\; c:\{local path to}\Python\Python38\Scripts\"
python -V

要在CMD任务中使用python,

c:\{local path to}\Python\Python38\python.exe -V
c:\{local path to}\Python\Python38\Scripts\pip.exe install

因此,我认为要使用私有代理运行python脚本,只需确保将python安装在本地,然后指向python.exe路径即可。您可以参考此case了解详情。

答案 2 :(得分:0)

我添加了这4个任务,然后才能使用vs2017-win2016代理在管道上执行python:

使用Python 3.x

steps:
- task: UsePythonVersion@0
  displayName: 'Use Python 3.x'

使用Pip身份验证

steps:
- task: PipAuthenticate@1
  displayName: 'Pip Authenticate'

使用命令行任务

steps:
- script: |
   python -m pip install --upgrade pip setuptools wheel


  failOnStderr: true
  displayName: 'install pip for setup of python framework'

使用命令行任务

steps:
- script: 'pip install -r _python-test-harness/requirements.txt'
  failOnStderr: true
  displayName: 'install python framework project''s specific requirements'

希望有帮助