You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Poetry从带Token的私有仓库安装包并安全管理Token?

配置Poetry从packagecloud私有源下载包(不暴露Token)

1. 准备.env配置文件

在项目根目录创建.env文件,存入你的packagecloud Token和域名信息:

PACKAGE_CLOUD_TOKEN=你的实际Token
PACKAGE_CLOUD_DOMAIN=你的packagecloud域名/仓库名  # 例如:my-org/internal-packages

2. 编写bash配置脚本

创建setup-private-source.sh脚本,内容如下:

#!/bin/bash

# 加载.env中的环境变量
if [ -f .env ]; then
    export $(cat .env | grep -v '#' | xargs)
else
    echo "错误:未找到.env文件,请先创建并配置变量"
    exit 1
fi

# 检查必要变量是否已设置
if [ -z "$PACKAGE_CLOUD_TOKEN" ] || [ -z "$PACKAGE_CLOUD_DOMAIN" ]; then
    echo "错误:.env文件中缺少PACKAGE_CLOUD_TOKEN或PACKAGE_CLOUD_DOMAIN"
    exit 1
fi

# 定义源名称和基础URL
SOURCE_NAME="internal-package"
SOURCE_URL="https://packagecloud.io/${PACKAGE_CLOUD_DOMAIN}/pypi/simple/"

# 移除已存在的同名源(避免重复添加报错)
poetry source remove "$SOURCE_NAME" 2>/dev/null

# 添加私有源(仅包含基础地址,不带认证信息)
poetry source add --priority supplemental "$SOURCE_NAME" "$SOURCE_URL"

# 配置源的认证:用Token作为用户名,密码留空
poetry config http-basic."$SOURCE_NAME" "$PACKAGE_CLOUD_TOKEN" ""

3. 执行脚本完成配置

  1. 给脚本添加执行权限:
    chmod +x setup-private-source.sh
    
  2. 运行脚本:
    ./setup-private-source.sh
    

4. 配置效果说明

  • 执行后,pyproject.toml中只会生成不带Token的源配置,安全无敏感信息:
    [[tool.poetry.source]]
    name = "internal-package"
    url = "https://packagecloud.io/你的域名/仓库名/pypi/simple/"
    priority = "supplemental"
    
  • 认证信息会被存储在Poetry的配置文件中(项目级的.venv/poetry/config.toml或全局的~/.config/pypoetry/config.toml),不会被提交到代码仓库。
  • 如果希望所有项目都能使用该私有源,可在poetry source add和poetry config命令后添加--global参数。

5. 额外安全措施

  • 务必将.env添加到.gitignore,防止敏感信息泄露:
    # .gitignore
    .env
    
  • 若担心命令历史记录泄露Token,可临时关闭历史记录后执行脚本:
    set +o history
    ./setup-private-source.sh
    set -o history
    

内容的提问来源于stack exchange,提问作者aweeb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:49:54