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

Twine上传包至AWS CodeArtifact时额外上传大量依赖包如何解决

解决Twine上传AWS CodeArtifact时意外上传第三方依赖包的问题

根本原因

Twine本身不具备自动扫描、上传包依赖的能力,你遇到的大量第三方包被同步上传的问题,是通配符匹配范围过大导致的:
你使用的target/dist/*/dist/*.tar.gz通配符,会匹配到pybuilder构建过程中缓存到target目录下的所有第三方依赖包的安装包产物,Twine只是按命令要求上传了所有匹配到的文件。
包列表示例
上图中未标记的第三方包均为通配符误匹配后被Twine上传的内容。

解决方法

  • 第一步先校验当前通配符的匹配结果,执行如下命令查看所有要上传的文件:
    ls target/dist/*/dist/*.tar.gz
    确认输出列表中是否包含非自研的第三方包。
  • 优化通配符缩小匹配范围
    如果你的自研包名固定,可将通配符限制为只匹配你的包名前缀的产物,修改后的上传命令示例为:
    twine upload --repository codeartifact target/dist/*/dist/你的包名-*.tar.gz
  • 固定构建产物输出目录(更稳定的方案)
    在pybuilder的build.py配置文件中添加规则,将自研包的构建产物单独输出到项目根目录下的独立文件夹(例如my_dist),之后上传时直接匹配该目录下的所有文件即可,完全避免误匹配第三方缓存包,命令如下:
    twine upload --repository codeartifact ./my_dist/*
  • 上传前预校验
    每次正式上传前可添加--dry-run参数执行测试,确认待上传的文件列表符合预期后再正式执行:
    twine upload --dry-run --repository codeartifact target/dist/*/dist/你的包名-*.tar.gz

补充说明

你在CodeArtifact中配置的PyPI上游仓库是生效的,只要不在仓库中存储冗余的第三方依赖包,安装自研包时会自动从上游拉取对应依赖,不会影响使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 18:51:03