poetry install --with aws
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 会同时安装boto3
和s3fs
。
为什么有 --with
参数?
在 Poetry 1.2+ 版本中,引入了 依赖分组(Dependency Groups) 的概念,目的是:
- 更灵活的依赖管理,只安装某些特定功能所需的依赖(比如 AWS、测试、开发)。
- 减少不必要的安装,避免项目安装不需要的依赖(比如仅开发时才需要的工具)。
其他 --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
里定义的可选依赖组,比如boto3
、s3fs
。- 这个机制可以避免安装不必要的包,提升管理效率。
- 还可以搭配
--only
来 只安装某些依赖,不安装默认依赖。
如果你的项目涉及多个功能模块(比如 aws
、gcp
、dev
),合理使用 --with
可以让依赖管理更加高效!