包: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_URL , PIP_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_proxy和http_proxy变量在 Linux 和 Mac 操作系统上区分大小写,必须小写。 尝试使用 Azure Pipelines 变量设置环境变量将不起作用,因为它将转换为大写。 相反,在自承载代理的计算机上设置环境变量并重启代理。 - 使用密钥将 代理设置添加到 pip 配置文件
proxy文件。 --proxy使用命令行选项以 形式指定代理[user:passwd@]proxy.server:port。
我的管道需要访问其他项目中的源
如果管道在托管源的项目不同的项目中运行,则必须设置另一个项目以授予对生成服务的读/写访问权限。 有关详细信息,请参阅 Azure Pipelines 包权限。