PipAuthenticate@1 - Python pip 身份验证 v1 任务

使用此任务为安装 Python 分发版的 pip 客户端提供身份验证。

语法

# Python pip authenticate v1
# Authentication task for the pip client used for installing Python distributions.
- task: PipAuthenticate@1
  inputs:
  # Feeds and Authentication
    #artifactFeeds: # string. My feeds (select below). 
    #pythonDownloadServiceConnections: # string. Feeds from external organizations. 
    #onlyAddExtraIndex: false # boolean. Don't set primary index URL. Default: false.

输入

artifactFeeds - 我的源 (选择下面的)
string.

指定要在组织中进行身份验证的源。


pythonDownloadServiceConnections - 来自外部组织的源
string.

指定要通过 pip 进行身份验证的外部组织的 pip 服务连接 名称的逗号分隔列表。


onlyAddExtraIndex - 不要设置主索引 URL
boolean. 默认值:false

如果此任务设置为 true,则不会将任何源设置为主索引 URL。 所有配置的源/终结点都将设置为额外的索引 URL。


任务控件选项

除任务输入外,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

无。

备注

为用于安装 Python 分发版的 pip 客户端提供身份验证。

应在管道中何时运行此任务?

必须先运行此任务,然后才能使用 pip 将 Python 分发下载到经过身份验证的包源(如 Azure Artifacts)。 没有其他订购要求。 多次调用此任务不会堆叠凭据。 每次运行任务都会清除以前存储的任何凭据。

我的代理位于 Web 代理后面。 PipAuthenticate 是否会设置 pip 以使用我的代理?

否。 虽然此任务本身将在 代理配置为使用的 Web 代理后面工作,但它不会将 pip 配置为使用代理。

为此,可以:

  • 将环境变量 http_proxyhttps_proxy (可选) no_proxy 设置为代理设置。 有关详细信息 ,请参阅 Pip 官方指南 。 这些是常用的变量, (其他非 Python 工具(例如 curl) )也可以使用。

    注意

    http_proxyno_proxy 变量在 Linux 和 Mac 操作系统上区分大小写,必须为小写。 尝试使用 Azure Pipelines 变量设置环境变量将不起作用,因为它将转换为大写。 而是在自承载代理的计算机上设置环境变量,然后重新启动代理。

  • 使用proxy密钥将代理设置添加到 pip 配置文件文件。
  • 使用 --proxy 命令行选项以 格式 [user:passwd@]proxy.server:port指定代理。

我的管道需要访问其他项目中的源

如果管道在与托管源的项目不同的项目中运行,则必须设置另一个项目以授予对生成服务的读/写访问权限。 有关更多详细信息 ,请参阅 Azure Pipelines 中的包权限

示例

从 Azure Artifacts 源下载 Python 分发版,而无需咨询官方 Python 注册表

在此示例中,我们将设置从专用 Azure Artifacts 源下载的身份验证。 身份验证任务创建下载分发版所需的环境变量PIP_INDEX_URLPIP_EXTRA_INDEX_URL。 任务使用任务为提供的项目源生成的身份验证凭据设置变量。 HelloTestPackage必须存在于 或 myTestFeed2myTestFeed1;否则安装将失败。

对于与管道运行所在的项目不同的项目范围的源,必须手动为项目和源授予对管道项目生成服务的访问权限。

- task: PipAuthenticate@1
  displayName: 'Pip Authenticate'
  inputs:
    # Provide list of feed names which you want to authenticate.
    # Project scoped feeds must include the project name in addition to the feed name.
    artifactFeeds: 'project1/myTestFeed1, myTestFeed2'

# Use command line tool to 'pip install'.
- script: |
    pip install HelloTestPackage

咨询官方 Python 注册表,然后从 Azure Artifacts 源下载 Python 分发版

在此示例中,我们将设置从专用 Azure Artifacts 源下载的身份验证,但首先咨询 pypi 。 身份验证任务创建一个环境变量 PIP_EXTRA_INDEX_URL,其中包含下载分发版所需的身份验证凭据。 HelloTestPackage 仅当 pypi 中不存在经过身份验证的源时,才会从该源下载该源。

对于与管道运行所在的项目不同的项目范围的源,必须手动为项目和源授予对管道项目生成服务的访问权限。

- task: PipAuthenticate@1
  displayName: 'Pip Authenticate'
  inputs:
    # Provide list of feed names which you want to authenticate.
    # Project scoped feeds must include the project name in addition to the feed name.
    artifactFeeds: 'project1/myTestFeed1, myTestFeed2'
    # Setting this variable to "true" will force pip to get distributions from official python registry first and fallback to feeds mentioned above if distributions are not found there.
    onlyAddExtraIndex: true

# Use command line tool to 'pip install'.
- script: |
    pip install HelloTestPackage

从其他专用 Python 服务器下载 Python 分发版

在此示例中,我们将设置从外部 Python 分发服务器下载的身份验证。 为外部 服务创建 pip 服务连接 条目。 身份验证任务使用服务连接创建环境变量 PIP_INDEX_URL,其中包含下载分发版所需的身份验证凭据。 HelloTestPackage 必须存在于服务连接中 pypitest ;否则安装将失败。 如果希望首先查阅 pypi ,请将 设置为 onlyAddExtraIndextrue

- task: PipAuthenticate@1
  displayName: 'Pip Authenticate'
  inputs:
    # In this case, name of the service connection is "pypitest". 
    pythonDownloadServiceConnections: pypitest

# Use command line tool to 'pip install'.
- script: |
    pip install HelloTestPackage

要求

要求 说明
管道类型 YAML,经典内部版本,经典发布
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置的变量 Any
代理版本 2.144.0 或更高版本
任务类别 程序包
要求 说明
管道类型 YAML,经典内部版本,经典发布
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置的变量 Any
代理版本 2.120.0 或更高版本
任务类别 程序包