Poetry:管理没有版本号的 PyPI 依赖项

问题描述

我正在尝试使用 Poetry 来管理我的 Python 项目,但某些 PyPI 依赖项没有版本号,例如 this one

我因此得到这样的错误

$ poetry update
Updating dependencies
Resolving dependencies... (0.5s)

  SolverProblemError

  Because wworkflow depends on waapi-client-python (^0) which doesn't match any versions,version solving Failed.

  at /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/poetry/puzzle/solver.py:241 in _solve
      237│             packages = result.packages
      238│         except OverrideNeeded as e:
      239│             return self.solve_in_compatibility_mode(e.overrides,use_latest=use_latest)
      240│         except SolveFailure as e:
    → 241│             raise SolverProblemError(e)
      242│ 
      243│         results = dict(
      244│             depth_first_search(
      245│                 PackageNode(self._package,packages),aggregate_package_nodes

在 .toml 中使用 any 作为依赖项的版本值时,我遇到了类似的错误

是不是 Poetry 不支持这样的用例?

解决方法

感谢@Lain Shelvington 的评论。我弄错了包名。我从其 GitHub 存储库中取名,但 PyPI 包的名称不同。

poetry update 在修复名称后起作用。但是,Poetry 无法将包名错误与其版本标记问题区分开来,这有点令人困惑。