如何在pyproject.toml中为依赖指定可选子依赖?
配置Python包依赖以包含pandas的HDF5可选依赖
1. 直接在pyproject.toml中配置(推荐)
要让你的包自动依赖带HDF5支持的pandas,无需用户额外操作,直接修改dependencies字段,指定pandas的hdf5可选依赖组:
[project] name = "my_pkg" version = "0.1.0" dependencies = [ "pandas[hdf5]", ]
这样别人安装my_pkg时,pip或poetry会自动安装pandas及其HDF5相关依赖(比如pytables),不会包含scipy这类无关的可选依赖。
2. 用pip安装时手动指定(若包未提前配置)
如果你的包仍依赖普通版pandas,用户安装时可以手动附加pandas的HDF5可选依赖:
pip install my_pkg pandas[hdf5]
你也可以把HDF支持做成包的可选扩展,在pyproject.toml里定义自己的extras:
[project.optional-dependencies] hdf = ["pandas[hdf5]"]
用户就能通过以下命令安装带HDF支持的你的包:
pip install my_pkg[hdf]
3. Poetry的配置方式
用Poetry管理项目的话,直接在tool.poetry.dependencies里指定pandas的可选依赖:
[tool.poetry] name = "my_pkg" version = "0.1.0" [tool.poetry.dependencies] python = "^3.8" pandas = { version = "*", extras = ["hdf5"] }
运行poetry install就会安装带HDF5支持的pandas。如果要做可选扩展,同样添加extras:
[tool.poetry.extras] hdf = ["pandas[hdf5]"]
用户用Poetry安装时执行:
poetry add my_pkg[hdf]
内容的提问来源于stack exchange,提问作者Jommy
相关产品推荐
相关产品推荐

