poetry install --with aws

发布于:2025-03-28 ⋅ 阅读:(32) ⋅ 点赞:(0)

poetry install --with aws 这条命令的作用是使用 Poetry 安装 Python 项目依赖,并额外安装 aws 相关的可选依赖项


拆解命令

  • poetry install
    这个命令用于安装 pyproject.toml 中定义的所有依赖项,包括默认依赖([tool.poetry.dependencies])和开发依赖([tool.poetry.dev-dependencies])。

  • --with aws
    --with 选项的作用是 安装某个可选的依赖组(extras/optional dependency groups)。
    这里的 aws 不是 Poetry 内置的,而是用户在 pyproject.toml 文件中 自定义的依赖组名称


示例:pyproject.toml

pyproject.toml 里,可能定义了类似以下的可选依赖:

[tool.poetry.dependencies]
python = "^3.10"
requests = "^2.31.0"

[tool.poetry.group.aws.dependencies]
boto3 = "^1.28"
s3fs = "^2023.9"
  • 默认情况下poetry install 不会安装 [tool.poetry.group.aws.dependencies] 里的 boto3 和 s3fs
  • 但加上 --with aws,Poetry 会同时安装 boto3s3fs

为什么有 --with 参数?

在 Poetry 1.2+ 版本中,引入了 依赖分组(Dependency Groups) 的概念,目的是:

  1. 更灵活的依赖管理,只安装某些特定功能所需的依赖(比如 AWS、测试、开发)。
  2. 减少不必要的安装,避免项目安装不需要的依赖(比如仅开发时才需要的工具)。

其他 --with 相关用法

安装多个可选依赖
poetry install --with aws,dev

假设 pyproject.toml 里有:

[tool.poetry.group.dev.dependencies]
pytest = "^7.0"
black = "^23.0"

那么,这条命令会同时安装:

  • [tool.poetry.dependencies](默认依赖)
  • [tool.poetry.group.aws.dependencies](AWS 相关)
  • [tool.poetry.group.dev.dependencies](开发工具)

仅安装可选依赖,不安装默认依赖
poetry install --only aws

这样 只安装 aws 组的依赖,不会安装默认依赖。


总结

  • --with aws 是让 Poetry 额外安装 aws 这个依赖组的所有包。
  • aws 是在 pyproject.toml 里定义的可选依赖组,比如 boto3s3fs
  • 这个机制可以避免安装不必要的包,提升管理效率。
  • 还可以搭配 --only只安装某些依赖,不安装默认依赖。

如果你的项目涉及多个功能模块(比如 awsgcpdev),合理使用 --with 可以让依赖管理更加高效!