
本文将介绍如何在使用 Poetry 管理 Python 项目依赖时,安全地从需要身份验证的私有仓库安装软件包。重点讲解了两种避免在配置文件中暴露 token 的方法:利用 POETRY_HTTP_BASIC_* 环境变量以及使用 poetry config 命令将 token安全地存储在 Poetry 的配置中。
在使用 Poetry 管理 Python 项目时,有时我们需要从私有仓库安装软件包,这些仓库通常需要身份验证。一种常见的做法是在 pyproject.toml 文件中配置仓库的 URL,并在 URL 中包含 token。然而,这种做法存在安全风险,因为 token 会暴露在配置文件中。本文将介绍两种更安全的方法来配置 Poetry,使其能够从私有仓库安装软件包,而无需将 token 存储在 pyproject.toml 文件中。
Poetry 允许通过环境变量来传递 HTTP Basic 认证的用户名和密码。对于使用 token 进行身份验证的私有仓库,我们可以将 token 作为用户名传递,而密码可以省略。
具体来说,我们需要设置以下环境变量:
其中,{SOURCE_NAME} 是你在 pyproject.toml 文件中定义的源的名称。例如,如果你的 pyproject.toml 文件中有如下配置:
[[tool.poetry.source]]
name = "internal-package"
url = "https://packagecloud.io/{some-domain}"
priority = "supplemental"那么 SOURCE_NAME 就是 INTERNAL_PACKAGE。
你可以通过以下命令来设置环境变量并安装软件包:
POETRY_HTTP_BASIC_INTERNAL_PACKAGE_USERNAME="your_token" poetry install
为了避免每次都手动设置环境变量,你可以将其添加到你的 shell 配置文件(例如 .zshrc 或 .bashrc)中:
export POETRY_HTTP_BASIC_INTERNAL_PACKAGE_USERNAME="your_token"
这样,每次打开新的终端窗口时,环境变量都会自动设置。
注意事项:
Poetry 提供了一个 config 命令,可以用来配置 Poetry 的各种设置,包括 HTTP Basic 认证信息。我们可以使用 poetry config 命令将 token 安全地存储在 Poetry 的配置中,而无需将其暴露在 pyproject.toml 文件或环境变量中。
要使用 poetry config 命令配置 HTTP Basic 认证信息,可以使用以下命令:
poetry config -- http-basic.internal-package "your_token" ""
其中:
执行此命令后,Poetry 会将 token 存储在 auth.toml 文件中(通常位于 ~/Library/Application Support/pypoetry/ 目录下)。
注意事项:
本文介绍了两种安全地从私有仓库安装软件包的方法,它们都避免了将 token 存储在 pyproject.toml 文件中。使用 POETRY_HTTP_BASIC_* 环境变量可以在每次安装时动态传递 token,而使用 poetry config 命令可以将 token 安全地存储在 Poetry 的配置中。选择哪种方法取决于你的具体需求和偏好。建议优先考虑使用 poetry config 命令,因为它将 token 存储在 Poetry 的配置中,可以避免将其暴露在环境变量中。
以上就是使用 Poetry 安全地从私有仓库安装包的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号