Azure DevOps Services
使用此任务选择要在代理上运行的 Python 版本,并选择性地将其添加到 PATH。
需求
无
先决条件
- 安装了并行版本的 Microsoft 托管代理 ,或者配置了 Agent.ToolsDirectory 的自承载代理 (请参阅 常见问题解答) 。
如果在 Agent.ToolsDirectory 中找不到 Python 版本,此任务将失败。 可在 Microsoft 托管的代理上找到可用的 Python 版本。
备注
x86 和 x64 版本的 Python 在 Microsoft 托管的 Windows 代理上可用,但在 Linux 或 macOS 代理上不可用。
YAML 代码片段
YAML复制
# Use Python version
# Use the specified version of Python from the tool cache, optionally adding it to the PATH
- task: UsePythonVersion@0
inputs:
#versionSpec: '3.x'
#addToPath: true
#architecture: 'x64' # Options: x86, x64 (this argument applies only on Windows agents)
参数
参数 | 描述 |
---|---|
versionSpec 版本规范 | (所需的) 版本范围或要使用的 Python 版本的确切版本。 默认值:30 3.x |
addToPath 添加到 PATH | (必需) 是否将检索到的 Python 版本追加到 PATH 环境变量,使其在后续任务或脚本中可用,而无需使用输出变量。 默认值:30 true |
architecture 体系结构 | (需要) Python 解释器的目标体系结构 (x86、x64) 。 x86 仅在 Windows 上受支持。 默认值:30 x64 |
从任务的 0.150 版起,版本规格也将接受 pypy2
或 pypy3
接受。
如果任务成功完成,则任务的输出变量将包含 Python 安装的目录:
备注
使用“添加到 PATH”运行此任务后, python
后续脚本中的命令将用于与版本规格和体系结构匹配的最高可用版本的解释器。
在 Microsoft 托管的 Ubuntu 和 macOS 映像上安装的 Python 版本遵循 PEP 394 中定义的类似 Unix 的系统符号链接结构。 例如,对于 Python 3.7, python3.7
是实际解释器。 python3
符号链接到该解释器,并且 python
是该符号链接的符号链接。
在 Microsoft 托管的 Windows 映像上,解释器只是。python
对于 Microsoft 托管的代理,x86 仅在 Windows 上受支持。 这是因为 Windows 可以使用 WoW64 子系统为 x86 体系结构运行编译的可执行文件。 托管 Ubuntu 和托管 macOS 运行 64 位操作系统,仅运行 64 位 Python。
开源
此任务是 GitHub 上的开源任务。 欢迎提供反馈和建议。
常见问题解答
在哪里可以了解有关工具安装程序的详细信息?
有关工具安装程序和示例的说明,请参阅 工具安装程序。
需要使用代理吗?
至少需要一个代理才能运行生成或发布。
我遇到了问题。 如何对其进行故障排除?
请查看排查生成和发布问题。
我无法选择默认代理池,无法将生成或发布排队。 如何修复此问题?
请查看代理池。
我的 NuGet 推送任务失败,出现“错误: 无法获取本地颁发者证书”错误。 如何解决此问题?
可通过添加受信任的根证书来解决此问题。 可将环境变量 NODE_EXTRA_CA_CERTS=file
添加到生成代理,也可在管道中添加任务变量 NODE.EXTRA.CA.CERTS=file
。 有关此变量的更多详细信息,请参阅 Node.js 文档。 有关在管道中设置变量的说明,请参阅在管道中设置变量。
如何配置自承载代理以使用此任务?
所需的 Python 版本必须添加到自承载代理上的工具缓存中,以便任务使用它。 通常,工具缓存位于代理的目录下 _work/_tool
,也可以由环境变量 AGENT_TOOLSDIRECTORY
重写路径。 在该目录下,根据 Python 版本创建以下目录结构:
复制
$AGENT_TOOLSDIRECTORY/
Python/
{version number}/
{platform}/
{tool files}
{platform}.complete
应 version number
遵循以下格式 1.2.3
。 应 platform
为 x86
或 x64
。 应 tool files
为解压缩的 Python 版本文件。 应 {platform}.complete
为 0 字节文件, x86.complete
如下所示, x64.complete
并且只是表示工具已正确安装在缓存中。
作为一个完整的具体示例,下面是 Python 3.6.4 for x64 的完整下载在工具缓存中的外观:
复制
$AGENT_TOOLSDIRECTORY/
Python/
3.6.4/
x64/
{tool files}
x64.complete
有关工具缓存的更多详细信息,请参阅 此处。
为了使脚本在 Microsoft 托管的代理上正常工作,我们建议遵循类似 Unix 的系统上 PEP 394 的符号链接结构。
另请注意,Python 的可嵌入 ZIP 版本需要 为已安装的模块(包括 pip
)进行额外配置。 如果可能,我们建议使用 完整的安装程序 来获取 pip
兼容的 Python 安装。
建议的内容
-
Python 脚本任务 - Azure Pipelines
在生成或发布管道中运行 Python 脚本
-
Python Pip 身份验证 - Azure Pipelines
使用 pip 设置身份验证,以便可以在管道中执行 pip 命令。
-
Python Twine 上传身份验证 - Azure Pipelines
设置 twine 到 Python 源的身份验证,以便可以在管道中发布 Python 包。
-
发布 Python 包 - Azure Pipelines
如何使用 Azure Pipelines 发布 Python 包
-
从 CLI 发布和使用包 - Azure Artifacts
通过命令行界面发布和使用 Python 包
-
生成和测试 Python 应用 - Azure Pipelines
使用 Azure Pipelines自动生成和测试 Python 应用
-
Bash 任务 - Azure Pipelines
在 macOS、Linux 或 Windows 上运行 Bash 脚本
-
Maven 对任务 (运行程序进行身份验证) - Azure Pipelines
为源和Azure Artifacts Maven 存储库提供凭据。
显示较少选项