【问题标题】:How to use poetry for recursive installation?如何使用诗歌进行递归安装?
【发布时间】:2021-05-20 15:57:15
【问题描述】:

我正在尝试使用诗歌包管理器安装this 存储库。 以下是使用 pip 完成的方法:

git clone --recursive https://github.com/parlance/ctcdecode.git
cd ctcdecode && pip install .

但是如果我尝试运行

poetry add ctcdecode

它因大回溯而失败(我认为超过 200 行)。 所以我安装了它

poetry run git clone --recursive https://github.com/parlance/ctcdecode.git
poetry run pip install ./ctcdecode

但是这种方式不适合与其他开发者分享。 我可以用 pyproject.toml 以某种方式做到这一点吗?

【问题讨论】:

  • 此项目的包装似乎不正确。我认为它不能与诗歌(或任何其他构建前端)一起正确安装(实际上构建良好)。您可以提交一个错误并告诉他们修复他们的包装。特别是他们应该正确地将torch 声明为“构建依赖项”。
  • @sinoroc 感谢您的回答。我会在存储库中指出它。很遗憾看到流行的存储库没有被正确打包:(

标签: setuptools setup.py python-packaging python-poetry pep517


【解决方案1】:

poetry add <packagename> 为您的项目添加并安装 pypi(或如果配置了其他包存储库)上可用的依赖项。

如果要添加一个包,源代码位于 git 存储库中,请使用poetry add git+<url_of_git>

ctcdecode 在这两个方面的问题在于,它需要被构建。为此需要torchctcdecode 没有根据PEP 518pyproject.toml 中声明此构建依赖项。

您可以通过克隆 git 存储库并将包含此内容的 pyproject.toml 放入项目文件夹中来解决它:

[build-system]
requires = ["setuptools", "torch"]
build-backend = "setuptools.build_meta"

然后回到你当前的项目,像这样添加本地路径依赖:

$ poetry add <relative_path_to_ctcdecode>

【讨论】:

  • 如果我 fork 这个存储库并在其中添加 pyproject.toml 然后使用 poetry add git+{my_url.git} 会起作用吗?因为我需要在其他 PC 上分发这个项目。
  • 分叉的想法很好,应该可以。如果有意义的话,我建议添加一个特定的 git 标签或 git commit id。然后你需要让你的 fork 为即将发布的版本保持最新状态。
猜你喜欢
  • 2022-08-11
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-24
相关资源
最近更新 更多