如何在pyproject.toml中使包A版本与版本可变的包B保持一致?
强制jax与jaxlib版本完全一致(jaxlib允许宽松版本范围)
要实现jax版本与jaxlib完全匹配,同时允许jaxlib选择>=0.0.1的任意可用版本,有几种简单可靠的方法:
方法1:使用pip约束文件(推荐)
- 创建一个名为
constraints.txt的文件,写入以下内容:jax==jaxlib jaxlib>=0.0.1 - 执行安装命令:
pip会自动挑选满足pip install jax jaxlib -c constraints.txtjaxlib>=0.0.1的合适版本,同时强制jax安装与之完全相同的版本。
方法2:用requirements.in + pip-tools生成锁定文件
适合需要固定版本的项目部署场景:
- 创建
requirements.in文件:jax==jaxlib jaxlib>=0.0.1 - 用pip-compile生成锁定文件:
生成的pip-compile requirements.inrequirements.txt会明确写出jax和jaxlib的同一版本号,且满足jaxlib的最低版本要求。
方法3:手动指定版本安装
如果需要锁定特定稳定版本,先查询jaxlib可用版本:
pip index versions jaxlib
挑选一个>=0.0.1的版本(比如0.4.20),执行:
pip install jax==0.4.20 jaxlib==0.4.20
关键提醒
jax与jaxlib的版本必须严格一致,否则会出现导入失败、运行时异常等兼容性问题,这是jax官方的硬性要求。
内容的提问来源于stack exchange,提问作者ganto
相关产品推荐
相关产品推荐

