值得一看
双11 12
广告
广告

使用 Poetry 从私有仓库安装包的安全配置教程

使用 poetry 从私有仓库安装包的安全配置教程

本文介绍了如何在使用 Poetry 管理 Python 项目依赖时,安全地从需要 token 认证的私有仓库安装包。 重点讲解了如何通过环境变量和 Poetry 配置两种方式,避免将 token 直接暴露在配置文件中,从而提升项目的安全性。 详细步骤包括设置 POETRY_HTTP_BASIC_* 环境变量以及使用 poetry config 命令进行配置。

在 Python 项目开发中,使用 Poetry 进行依赖管理非常方便。 但当需要从私有仓库安装包时,通常需要提供 token 进行身份验证。 如果直接将 token 写入 pyproject.toml 文件,会存在安全风险。 本文将介绍两种更安全的配置方法,避免 token 泄露。

1. 使用环境变量配置

Poetry 支持通过环境变量传递 HTTP Basic 认证信息。 我们可以利用 POETRY_HTTP_BASIC_* 环境变量来设置用户名(即 token)和密码(可以为空)。

具体来说,需要设置以下两个环境变量:

  • POETRY_HTTP_BASIC_{SOURCE_NAME}_USERNAME: 用于指定用户名,此处应设置为你的 token。
  • POETRY_HTTP_BASIC_{SOURCE_NAME}_PASSWORD: 用于指定密码,由于我们使用 token 认证,此变量可以省略或设置为空字符串。

其中,{SOURCE_NAME} 是你在 pyproject.toml 文件中定义的仓库名称。 例如,如果你的 pyproject.toml 文件中有如下配置:

[[tool.poetry.source]]
name = "internal-package"
url = "https://{**some-token**}:@packagecloud.io/{some-domain}"
priority = "supplemental"

那么 SOURCE_NAME 就是 INTERNAL_PACKAGE。 因此,你需要执行以下命令来安装包:

POETRY_HTTP_BASIC_INTERNAL_PACKAGE_USERNAME="{**some-token**}" poetry install

持久化配置:

为了避免每次执行 poetry install 命令都手动设置环境变量,可以将环境变量添加到 shell 配置文件(例如 .zshrc 或 .bashrc)中:

export POETRY_HTTP_BASIC_INTERNAL_PACKAGE_USERNAME="{**some-token**}"

添加后,需要执行 source ~/.zshrc (或 source ~/.bashrc) 使配置生效。 这样,每次打开新的终端窗口,token 都会自动设置。

2. 使用 poetry config 命令配置

Poetry 提供了 poetry config 命令,可以将 token 安全地存储在 Poetry 的配置文件中(例如 ~/Library/Application Support/pypoetry/auth.toml)。

执行以下命令来配置 token:

poetry config -- http-basic.internal-package "{**some-token**}" ""

注意:最后一个参数是空字符串 “”,表示密码为空。

执行此命令后,Poetry 会将 token 安全地存储在配置文件中,后续执行 poetry install 命令时,会自动使用该 token 进行身份验证。

注意事项:

  • 安全性: 推荐使用环境变量或 poetry config 命令来配置 token,避免将 token 直接写入 pyproject.toml 文件。
  • 环境变量优先级: 如果同时设置了环境变量和 Poetry 配置,环境变量的优先级更高。
  • 配置文件位置: Poetry 配置文件的位置取决于操作系统。 例如,在 macOS 上,配置文件位于 ~/Library/Application Support/pypoetry/auth.toml。

总结:

通过以上两种方法,我们可以安全地配置 Poetry,使其能够从需要 token 认证的私有仓库安装包。 使用环境变量或 poetry config 命令可以有效避免 token 泄露的风险,提升项目的安全性。 选择哪种方法取决于个人偏好和具体场景。 环境变量适合需要临时切换 token 的情况,而 poetry config 命令适合长期使用的 token。 无论选择哪种方法,都应注意保护好自己的 token,避免泄露。

温馨提示: 本文最后更新于2025-08-03 22:27:42,某些文章具有时效性,若有错误或已失效,请在下方留言或联系易赚网
文章版权声明 1 本网站名称: 创客网
2 本站永久网址:https://new.ie310.com
1 本文采用非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
2 本站所有内容仅供参考,分享出来是为了可以给大家提供新的思路。
3 互联网转载资源会有一些其他联系方式,请大家不要盲目相信,被骗本站概不负责!
4 本网站只做项目揭秘,无法一对一教学指导,每篇文章内都含项目全套的教程讲解,请仔细阅读。
5 本站分享的所有平台仅供展示,本站不对平台真实性负责,站长建议大家自己根据项目关键词自己选择平台。
6 因为文章发布时间和您阅读文章时间存在时间差,所以有些项目红利期可能已经过了,能不能赚钱需要自己判断。
7 本网站仅做资源分享,不做任何收益保障,创业公司上收费几百上千的项目我免费分享出来的,希望大家可以认真学习。
8 本站所有资料均来自互联网公开分享,并不代表本站立场,如不慎侵犯到您的版权利益,请联系79283999@qq.com删除。

本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
喜欢就支持一下吧
点赞8赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容