使用命令行发布和使用 Python 包 (CLI)
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Artifacts 允许你与团队或组织创建、托管和共享 Python 包。 可以从本地开发环境中的命令行使用 Azure Artifacts 源发布和使用 Python 包。
本文介绍如何执行以下操作:
- 创建 Azure Artifacts 源。
- 使用 Python 项目密钥包或个人访问令牌(PAT)设置身份验证。
- 将 Python 包发布到源。
- 使用源中的 Python 包。
若要在 Azure Pipelines 中发布和使用包,请参阅 使用 Azure Pipelines 发布 Python 包。
先决条件
若要运行以下步骤,必须具备:
创建 Azure Artifacts 源
如果没有源,请使用以下步骤创建一个源。
登录到 Azure DevOps 组织,然后转到项目。
选择“项目”,然后选择“创建源”。
输入源的以下信息:
- 输入源的描述性 名称 。
- 定义其 可见性 (指示谁可以查看源中的包)。
- 选择是否使用来自公共源的包,例如 pypi.org。
- 指定源的范围。
选择创建。
转到 Azure DevOps 集合,选择项目。
选择“项目”,然后选择“创建源”。
输入源的以下信息:
- 输入源的描述性 名称 。
- 定义其 可见性 (指示谁可以查看源中的包)。
- 选择是否使用来自公共源的包,例如 pypi.org。
- 指定源的范围。
选择创建。
转到 Azure DevOps 集合,选择项目。
选择 “项目”,然后选择“创建源” 以创建新源 。
输入源的以下信息:
- 输入源的描述性 名称 。
- 定义其 可见性 (指示谁可以查看源中的包)。
- 选择是否使用来自公共源的包,例如 pypi.org。
- 指定源的范围。
选择创建。
转到 Azure DevOps 集合,选择项目。
选择 “项目”,然后选择“创建源” 以创建新源 。
输入源的以下信息:
- 输入源的描述性 名称 。
- 定义其 可见性 (指示谁可以查看源中的包)。
- 选择是否使用来自公共源的包,例如 pypi.org。
选择创建。
创建本地 Python 包
需要一个 Python 包才能发布到源。 如果没有要发布的包,可以从 GitHub 克隆示例 Python 包。
克隆示例 Python 包
使用以下步骤从 GitHub 使用示例 Python 包。
转到以下 GitHub 存储库:
https://github.com/microsoft/python-package-template
在 GitHub 帐户中创建存储库分支。
转到分支存储库,然后选择“ 代码”。
复制分叉存储库的 URL。
从本地计算机上的 CLI,使用从分支存储库复制的 URL 将存储库克隆到本地计算机。
git clone <REPOSITORY_URL>
将目录更改为克隆的存储库。
cd python-package-template
生成包
若要生成 wheel 和源分发,请在项目目录中运行以下命令:
pip install --upgrade build
python -m build
如果 Python 项目有文件 setup.py
,可以使用以下命令生成包:
python setup.py sdist bdist_wheel
连接到源
可通过两种主要方法连接到源以发布或使用 Python 包:
- 使用 artifacts-keyring 包,该包会自动为你设置身份验证。
- 使用 PAT 手动设置凭据。
注意
Ubuntu 的较新版本不支持 artifacts-keyring 。
注意
如果你的组织使用防火墙或代理服务器,请确保允许 Azure Artifacts 域 URL 和 IP 地址。
设置用于身份验证的项目密钥环
Artifacts-keyring 包与 Python 密钥传送包配合使用,使你可以设置身份验证,以便发布和使用源中的 Python 包。 pip 和 twine 都使用 Python 密钥环包来查找凭据。
重要
必须具有 pip 19.2 和 twine 1.13.0 或更高版本才能使用 artifacts-keyring。 有关详细信息,请参阅 使用情况要求。
如果选择使用 artifacts-keyring,则必须先安装包,然后才能使用它。
在提升的命令提示符窗口中,运行以下命令以安装 artifacts-keyring 包:
pip install artifacts-keyring
发布 Python 包
可以使用项目密钥包或 PAT 身份验证将 Python 包发布到源。
使用 artifacts-keyring 发布包
从源中选择连接源。
选择 孪生, 然后从 “项目设置 ”部分复制存储库 URL。
若要将包发布到源,请运行以下命令,将 F企业版D_URL> 替换为<从连接复制到源对话框的存储库 URL:
twine upload --repository-url <FEED_URL> dist/*
使用 PAT 身份验证发布包
使用孪生将包上传到 Azure Artifacts 源。
转到 Azure DevOps 项目并选择“ 项目”。
选择源并选择连接源。
选择 Python 部分下的孪生体。
在开发计算机上,确保已安装孪生体。
pip install --upgrade twine
按照“项目设置”部分中的说明设置
.pypirc
文件。为了避免每次发布包时都需要输入个人访问令牌,可以将凭据添加到
.pypirc
文件中。 确保不会将个人访问令牌检查到公共存储库中。.pypirc
包含凭据的文件示例:[distutils] Index-servers = <FEED_NAME> [<FEED_NAME>] Repository = <FEED_URL> username = <FEED_NAME> password = <YOUR_PERSONAL_ACCESS_TOKEN>
若要上传包,请在项目目录中运行以下命令,将 <F企业版D_NAME>替换为源名称。 在 Windows 上,可能需要使用
--config-file
选项指定pypirc
文件位置。twine upload --repository <FEED_NAME> dist/*
使用 Python 包
可以使用 artifacts-keyring 包或 PAT 身份验证从源使用 Python 包。
将包与 artifacts-keyring 配合使用
在项目中,选择“项目”,然后选择源。
选择“Connect to feed”。
选择 Python 部分下的 pip。
准备本地 Python 环境。
确保 pip 已安装并更新:
python -m pip install --upgrade pip
若要创建和激活 Python 虚拟环境,请执行以下操作:
python -m venv myenv myenv/Scripts/activate
index-url
复制连接的“项目设置”部分以馈送对话框。若要从源安装包,请运行以下命令,将PACKAGE_NAME替换为<源<中的包名称,并使用从连接复制到源对话框的索引 URL INDEX_URL>:>
pip install <PACKAGE_NAME> --index-url <INDEX_URL>
首次连接到 Azure DevOps 时,系统会提示输入凭据。 在相应的字段中输入用户名(任何字符串)和个人访问令牌。 凭据将在本地缓存,用于下次使用服务时自动登录。
通过 PAT 身份验证使用包
转到 Azure DevOps 项目并选择“ 项目”。
选择源并选择连接源。
选择 Python 部分下的 pip。
准备本地 Python 环境。
确保 pip 已安装并更新:
python -m pip install --upgrade pip
创建和激活 Python 虚拟环境:
python -m venv myenv myenv/Scripts/activate
将 pip.ini (Windows)或 pip.conf (Mac/Linux)文件添加到虚拟环境的根目录。 从连接的“项目设置”部分复制内容以馈送对话框,并将其添加到pip.ini或 pip.conf 文件。
若要避免每次从源安装包时输入个人访问令牌,可以将凭据添加到 pip.ini 或 pip.conf 文件。 请确保不要将个人访问令牌检查到公共存储库。
包含凭据的 pip.ini 或 pip.conf 文件的示例:
[global] index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
若要安装包,请运行以下命令,将PACKAGE_NAME>替换为<源中的包名称。
pip install <PACKAGE_NAME>