python - 诗歌忽略pyproject.toml中的依赖

标签 python python-poetry

我目前有一个 Python3 项目,设置了 Poetry 作为主要的包管理器。除此之外,我还通过 Github 工作流设置了构建和一些自动化测试。我的包依赖于 Tensorflow,尽管没有它也可以运行自动化测试。不幸的是,每次 Github 工作流运行这些测试时都会安装 Tensorflow(相当大)。由于这些测试不需要 Tensorflow,并且我想加快构建速度,因此当从构建管道调用 poetry install 时,我想忽略 Tensorflow 依赖项。
有人知道在使用 Poetry 时排除依赖项的方法吗?

最佳答案

想到的唯一其他方法是将 tensorflow 依赖项移动到 an extra category ,这在诗歌中看起来像这样:

$ poetry add --extras tensorflow
这意味着当您运行 poetry install 时不会安装它,除非它是您明确安装的命名组的一部分。这可以通过将其添加到您的 pyproject.toml 来实现:
[tool.poetry.extras]
runtime = ["tensorflow"]  # any name goes, I chose "runtime"  because it sounded like it'd make sense
该列表可以使用您只在运行时需要的任何其他包进行扩展,而不是在测试期间。如果要安装代码以实际运行它,则必须先执行以下操作:
$ poetry install --extras runtime

这将干净地分离您的依赖项,您必须评估它在您的情况下是否有意义。根据经验,通常最好运行 hacks 来使测试工作而不是恶化客户端体验,因此您当前的工作流程很可能比我刚刚编写的更好。

关于python - 诗歌忽略pyproject.toml中的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62978955/

相关文章:

python - 我应该单独提交 .lock 文件更改吗?我应该为提交消息写些什么?

python - 从父函数 : "Local variable referenced before assignment" 分配给变量

python - 如何在 MacOS 上使用 python 构建包含 ssl

python - Tornado 路由到 "base"处理程序

python - Poetry 和 Pytest-cov with Sonar : how to reconcile the references?

python - 使用本地依赖项用诗歌构建可安装的 tar.gz/whl

python - 如何将 pip install 转换为 Poetry 文件?

javascript - 我应该如何在 Django 表单中实现条件逻辑?

python - Python 中 Perl 模块 List::Util、List::MoreUtils 功能的类似物

python - Windows 中的 Poetry 安装不起作用