Ubuntu 22.04下Poetry安装xarray-spatial报错,疑存在兼容性问题
在Ubuntu 22.04通过Poetry安装xarray-spatial时触发AssertionError
环境与配置
我在Ubuntu 22.04系统中尝试用Poetry安装xarray-spatial,当前的pyproject.toml配置如下:
[tool.poetry] name = "xarray-spatial-test" version = "0.1.0" description = "" authors = [] readme = "README.md" packages = [{include = "xarray_spatial"}] [tool.poetry.dependencies] python = "^3.10" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"
问题重现
执行命令poetry add xarray-spatial时,出现如下错误:
Using version ^0.3.5 for xarray-spatial Updating dependencies Resolving dependencies... (0.0s) AssertionError at ~/.local/share/pypoetry/venv/lib/python3.10/site-packages/poetry/mixology/incompatibility.py:113 in __str__ 109│ ) 110│ 111│ def __str__(self) -> str: 112│ if isinstance(self._cause, DependencyCause): → 113│ assert len(self._terms) == 2 114│ 115│ depender = self._terms[0] 116│ dependee = self._terms[1] 117│ assert depender.is_positive()
异常情况对比
- 在Ubuntu 20.04上用相同流程安装无问题
- 用
python3 -m venv test_env创建虚拟环境后,通过pip3 install xarray-spatial可正常安装,且xrspatial examples能正常下载示例
请问Poetry和xarray-spatial之间是否存在兼容性问题?有没有解决办法?
回答
这个错误并非Poetry和xarray-spatial的直接兼容性问题,而是Poetry的依赖解析器(mixology)在处理某些复杂依赖树时的断言失败bug,常见于特定版本的Poetry与环境的组合场景。可以尝试以下几种解决方式:
更新Poetry到最新版本:旧版本的依赖解析器可能存在已知bug,更新后大概率能修复问题
poetry self update指定xarray-spatial具体版本:避免使用范围版本,直接指定稳定版尝试安装
poetry add xarray-spatial==0.3.5清除Poetry缓存后重试:缓存的依赖信息可能导致解析异常,清空后重新尝试
poetry cache clear --all pypi poetry add xarray-spatial临时用pip安装后锁定依赖:如果以上方法无效,可先在Poetry环境中用pip安装,再将依赖写入配置
poetry run pip install xarray-spatial poetry add --lock xarray-spatial
内容的提问来源于stack exchange,提问作者MaxDragonheart
相关产品推荐
相关产品推荐

