如何用Poetry指定平台专属依赖?PyTorch跨平台安装问题求助
解决Poetry跨平台依赖(如PyTorch)安装错误的方案
1. 升级Poetry到最新稳定版
旧版本Poetry在解析平台条件依赖时存在逻辑bug,直接影响多平台包的选择逻辑。执行命令升级:
poetry self update
2. 替换platform字段为精确环境标记(markers)
原配置中使用的platform字段匹配逻辑可能存在兼容性问题,改用Python标准的环境标记语法,修改pyproject.toml如下:
[tool.poetry.dependencies] python = "^3.10" torch = [ { version = "2.0.1+cu118", markers = "sys_platform == 'linux'", url = "https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-linux_x86_64.whl" }, { version = "2.0.1", markers = "sys_platform == 'darwin'" } ]
3. 生成支持多平台的lock文件
若之前的lock文件仅基于单一平台生成,会导致跨平台安装时拉取错误依赖。重新生成包含Linux和macOS的lock文件:
poetry lock --platform linux --platform darwin --no-update
该命令会让lock文件同时记录两个平台的torch依赖条目,Poetry将根据当前系统自动匹配正确的包。
4. 执行安装验证
在对应平台运行安装命令:
poetry install
内容的提问来源于stack exchange,提问作者Louis Lac
相关产品推荐
相关产品推荐

