【发布时间】:2019-08-25 12:19:14
【问题描述】:
在Poetry的pyproject.toml配置文件中可以同时指定dependencies和dev-dependencies,但是文档并没有明确说明有什么区别。
我猜从名称来看,发布版本不会安装 dev-dependencies,但我没有发现任何区别。您如何正确使用这些字段,例如在构建中排除 dev-dependencies?
【问题讨论】:
标签: python-poetry
在Poetry的pyproject.toml配置文件中可以同时指定dependencies和dev-dependencies,但是文档并没有明确说明有什么区别。
我猜从名称来看,发布版本不会安装 dev-dependencies,但我没有发现任何区别。您如何正确使用这些字段,例如在构建中排除 dev-dependencies?
【问题讨论】:
标签: python-poetry
你的假设是正确的。开发依赖项的最佳用例是创建具有可选依赖项的库时。例如,您正在开发应该与 MySQL、PostgreSQL 等一起使用的 ORM。您必须测试您的代码是否可以与所有这些 RDBMS 一起使用。您将其放入开发依赖项中。但是对于安装你的库的人来说,这些依赖项是可选的,它们不会自动安装。
通常,用于测试或构建应用程序的所有库都显示在开发依赖项中。
您如何正确使用这些字段,例如排除构建中的开发依赖项?
poetry install 有一个 no-dev 标志,用于该场景。
【讨论】:
no-dev 不是默认值。我猜 95% 的安装包的用户对 pyflakes、pytest、black 等开发库不感兴趣。但是因为诗歌默认安装开发包,我必须向用户说明使用 no-dev 标志安装时。