5

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

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

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

重新启动代理,但现在呢?如何将其放入功能中?我错过了什么?

编辑:我需要运行这个 YAML 任务

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.x'
    addToPath: true

- script: |
    python -m pip install --upgrade pip
    pip install -r requirements.txt
  displayName: 'Install dependencies'

- task: BatchScript@1
  displayName: 'Run script make.bat'
  inputs:
    filename: make.bat
    arguments: html
4

3 回答 3

5

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

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

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

完成后(并且它在后台运行,因此将比初始命令花费更长的时间),您需要创建一个空{platform}.complete文件(如此所述),在我的情况下是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 和 Scripts。我最初将它们安装在一个不起作用的子目录中。所以它应该是这样的:

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

老实说,这让我松了一口气,因为它没有太多麻烦。我放弃了让 Artifacts 在本地工作的尝试。以我有限的经验,所有这一切在云版本上都更容易、更好。然而,还没有说服我的雇主迈出那一步……

于 2021-03-23T17:56:30.230 回答
0

对于这个问题,为了使用安装在您的本地机器中的 python 版本。您要么需要指向python.execmd 任务中的物理路径。或者python.exe在 powershell 任务中手动添加环境变量路径的路径。例如:

要在 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路径。详情可以参考这个案例

于 2020-03-31T07:34:23.603 回答
0

在能够使用 vs2017-win2016 代理在我的管道上执行 python 之前,我添加了这 4 个任务:

使用 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'

希望有帮助

于 2020-05-13T03:57:25.877 回答