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

2024-04-12

我已经安装了 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

我已经在a上设置了一个自托管代理Windows 10笔记本电脑(我有admin访问),我正在运行Azure DevOps Express 2020.

我按照以下网址的说明找到、下载并安装了代理下载并配置代理 https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops#download-and-configure-the-agent。我用了vsts-agent-win-x64-2.170.1.zip并将其设置为运行service,(我想任何手动运行它的人都需要仔细检查它是否在显示时运行)。我还运行了安装命令powershell 中的管理员!

要安装 Python 版本,我需要从以下位置下载适当的安装程序Python.org 上的 ftp 站点 https://www.python.org/ftp/python/,例如。对于 3.7.9 我用过python-3.7.9-amd64.exe。 然后我从命令行运行它(以管理员身份运行CMD) 没有用户界面 https://docs.python.org/3/using/windows.html#installing-without-ui with: python-3.7.9-amd64.exe /quiet InstallAllUsers=0 TargetDir=$AGENT_TOOLSDIRECTORY\Python\3.7.9\x64 Include_launcher=0(其他安装选项可在蟒蛇文档 https://docs.python.org/3/using/windows.html#installing-without-ui)

完成后(并且它在后台运行,因此需要比初始命令更长的时间),您需要创建一个空的{platform}.complete文件(如描述here https://learn.microsoft.com/en-gb/azure/devops/pipelines/tasks/tool/use-python-version?view=azure-devops#how-can-i-configure-a-self-hosted-agent-to-use-this-task),就我而言,这是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 在本地运行的尝试。根据我有限的经验,所有这些在云版本上都更容易、更好。然而,还没有说服我的雇主迈出这一步......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Python 安装到自托管 Windows 构建代理 的相关文章

随机推荐

  • nvm安装了node和npm,安装本地browserify时出现符号链接问题

    今天我已经安装了最新版本node通过nvm在 Linux Mint Ubuntu 13 10 上 感谢 nvm 我现在不必将 sudo 命令与 npm 一起使用 这已经解决了一些软件包的问题 node v v0 10 29 npm v 1
  • achartengine - 无法弄清楚如何使用日期作为 x 轴 - 我保存的文件是空的

    我有一个活动 我从编辑文本中获取输入并将其存储在列表中 我还将当前日期存储在列表中 然后 我按保存按钮保存上述内容 第二天 用户再输入一些数据并保存 依此类推 我想制作一个 x 轴日期格式和 y 轴用户输入的值的图 在一项活动中我有 Str
  • NSXMLParser 可以用来解析 HTML [重复]

    这个问题在这里已经有答案了 可能的重复 使用 NSXMLParser 解析 HTML https stackoverflow com questions 8866376 using an nsxmlparser to parse html
  • Xcode:复制标头:公共、私有、项目?

    我正在构建一个 Cocoa Touch 静态库 我应该如何决定是否将头文件复制为公共 私有或项目 Public 该界面已最终确定 可供产品的客户使用 公共标头作为可读源代码包含在产品中 不受限制 Private 该界面不适用于您的客户 或者
  • std::mutex 会创建栅栏吗?

    如果我锁定一个std mutex我总会得到一个记忆栅栏吗 我不确定这是否暗示或强迫你获得栅栏 Update 根据 RMF 的评论找到了这个参考资料 多线程编程和内存可见性 http en wikipedia org wiki Memory
  • 如何深度复制混有特征的类

    这是一些示例 scala 代码 abstract class A val x Any abstract def copy A class b i Int extends A i override def copy new B x class
  • python中,什么时候可以省略self?

    下面定义的代码Duck类由以下组合而成Bill类和Tail班级 我的问题是至于方法about inside Duck类定义 为什么可以写bill description and tail length Is self这里省略了 如果是 我什
  • neo4j cypher节点之间的多重关系

    例如 a r gt b 两个节点之间存在多个r 每个r userId都是唯一的 例如 a r R userId user1 gt b a r R userId user2 gt b 对于 a r gt c 也是如此 而情况是a r gt b
  • Mojolicious REST 调用中错误的 HTTP 响应

    我使用的mojolicious应用程序是基于JSON的 即客户端和服务器之间的交互更多的是JSON结构化数据的交换 我正在尝试实现一种标准方法 当在 REST 调用期间发生错误时 使用正确的 HTTP 响应代码来处理错误 实施此类标准的最佳
  • 插入符使用插入符训练对象返回的预测与使用提取的最终模型返回的预测不同

    在拟合模型时我更喜欢使用插入符号 因为它的相对速度和预处理功能 然而 我对它如何做出预测有点困惑 当比较直接从训练对象做出的预测和从提取的最终模型做出的预测时 我看到了非常不同的数字 来自火车对象的预测似乎更准确 library caret
  • 如何执行 CompletableFuture 数组并组合其结果

    我正在研究 Java 8CompletableFutures并阅读 并看到 我应该采用thenCompose代替thenApply 我已将我的代码转换为使用thenCompose但我有一种不正确的感觉 这是我的控制代码 final Comp
  • Spark 和 AWS S3 连接错误:无法通过 Spark-shell 从 S3 位置读取文件

    在下面的 Spark shell 中 我尝试连接到 S3 并加载文件以创建数据帧 spark shell packages com databricks spark csv 2 10 1 5 0 scala gt val sqlContex
  • 哪个 ORM 支持这个

    我有一个可选的查询部分 需要在特定条件下执行 这是示例代码 int cat 1 int UserID 12 string qry select from articles if cat gt 0 qry where categoryID c
  • 如何仅在特定 API 级别上执行代码

    例如 这段代码 if Build VERSION SDK INT gt Build VERSION CODES GINGERBREAD myCalendarView setOnDateChangeListener new OnDateCha
  • 如何向 CMFCPopupMenu 添加图标?

    我想用CMFCPopupMenu用于右键单击期间的弹出菜单 如何添加图标CMFCPopupMenu 这是我在基本 MFC 应用程序中尝试的示例代码 CMFCPopupMenu TestCMFCPopMenu new CMFCPopupMen
  • str在 data.frame 中按行分割并按列分配结果

    所以我有数据框 dat data frame x c Sir Lancelot the Brave King Arthur The Black Knight The Rabbit stringsAsFactors F gt dat x 1
  • Java 8 Streams:将对象列表转换为一组对象

    我正在尝试将对象列表转换为一组对象 以确保集合中是否不存在重复项 我正在尝试使用 Streams 我有一个类产品如下 class Product int id String name float price public Product i
  • 模拟通过实例使用的类方法

    我正在尝试使用模拟修补类方法 如所述在文档中 http www voidspace org uk python mock patch html patch Mock 对象本身工作正常 但它的方法却不能 例如 它们的属性如下call coun
  • 从 Delphi 将列表导出到 OpenOffice Calc

    我正在使用 Delphi 7 我想使用自动化而不是使用文件将列表内容从我的程序导出到 OpenOffice Calc 任务很简单 创建新文档 迭代行 列并更改单元格数据 我找到了一些代码 但它并不完整 我希望有人有一些示例代码可以完成这个非
  • 将 Python 安装到自托管 Windows 构建代理

    我已经安装了 Windows 代理 并且需要能够运行 Python 脚本 我知道我需要安装Python 但我不知道如何安装 我将标准安装中的 Python 文件添加到 AGENT TOOLSDIRECTORY Python 3 8 2 x6