Rap*_*tor 5 python build-agent azure-devops azure-devops-self-hosted-agent
我已经安装了 Windows 代理,并且需要能够运行 Python 脚本。我知道我需要安装Python,但我不知道如何安装。
我将标准安装中的 Python 文件添加到
$AGENT_TOOLSDIRECTORY/
Python/
3.8.2/
x64/
{tool files}
x64.complete
Run Code Online (Sandbox Code Playgroud)
重新启动代理,但现在怎么办?如何将其放入能力中?我缺少什么?
编辑:我需要运行此 YAML 任务
$AGENT_TOOLSDIRECTORY/
Python/
3.8.2/
x64/
{tool files}
x64.complete
Run Code Online (Sandbox Code Playgroud)
我已在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)'
Run Code Online (Sandbox Code Playgroud)
(使用变量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
Run Code Online (Sandbox Code Playgroud)
说实话,我很欣慰的是,这个方法没有遇到太多麻烦。我放弃了让 Artifacts 在本地运行的尝试。根据我有限的经验,所有这些在云版本上都更容易、更好。然而,还没有说服我的雇主迈出这一步......
对于这个问题,为了使用本地机器上安装的python版本。您需要python.exe在 cmd 任务中指向物理路径。或者python.exe在powershell任务中手动将路径添加到环境变量path中。例如:
要在 powershell 任务中使用本地 python:
$env:Path += ";c:\{local path to}\Python\Python38\; c:\{local path to}\Python\Python38\Scripts\"
python -V
Run Code Online (Sandbox Code Playgroud)
要在 CMD 任务中使用 python:
c:\{local path to}\Python\Python38\python.exe -V
c:\{local path to}\Python\Python38\Scripts\pip.exe install
Run Code Online (Sandbox Code Playgroud)
因此,我认为要使用私人代理运行 python 脚本,只需确保本地安装了 python,然后指向 python.exe 路径。详细可以参考这个案例。
| 归档时间: |
|
| 查看次数: |
13817 次 |
| 最近记录: |