包:Python Pip 身份验证

Azure DevOps Services

版本 1.* | 其他版本

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

YAML 代码片段

# Python pip authenticate V1
# Authentication task for the pip client used for installing Python distributions
- task: PipAuthenticate@1
  inputs:
    #artifactFeeds: 'MyFeed, MyTestFeed' # Optional
    #pythonDownloadServiceConnections: pypiOrgFeed, OtherOrganizationFeed # Optional
    #onlyAddExtraIndex: false # Optional

参数

参数 说明
artifactFeeds
我的源
(可选) 逗号分隔的源列表Azure Artifacts pip 进行身份验证。
pythonDownloadServiceConnections
来自外部组织的源
(可选) 外部组织的 pip 服务 连接名称的逗号分隔列表,以使用 pip 进行身份验证。
onlyAddExtraIndex
不设置主索引 URL
(可选) 布尔 true 值,如果设置为 将强制 pip 首先从官方 python 注册表获取分发。 默认情况下,它是 false

任务控制选项

示例

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

本示例将设置身份验证,以从专用源Azure Artifacts下载。 身份验证任务会创建环境变量 PIP_INDEX_URLPIP_EXTRA_INDEX_URL 下载分发时需要这些变量。 该任务使用任务为提供的源生成的身份验证凭据设置Artifacts变量。 "HelloTestPackage"必须存在于"myTestFeed1"或"myTestFeed2"中,否则安装将硬失败。

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

- 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

首先从源中Azure Artifacts Python 分发,并咨询官方 python 注册表

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

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

- 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

任务版本

任务:Pip 身份验证

任务版本 Azure Pipelines TFS
1.* 可用 不支持
0.* 可用 不支持

开源

此任务开放源代码上GitHub。 欢迎提供反馈和建议。

常见问题解答

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

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

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

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

为此,可以:

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

    谨慎:no_proxyhttp_proxy 变量在 Linux 和 Mac 操作系统上区分大小写,必须小写。 尝试使用 Azure Pipelines 变量设置环境变量将不起作用,因为它将转换为大写。 相反,在自承载代理的计算机上设置环境变量并重启代理。

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

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

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