You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用uv pip批量安装多包失败,但单独安装正常的问题求助

问题描述

使用uv批量安装Python包时触发依赖版本兼容错误,但按相同顺序逐个安装无异常。

批量安装命令:

uv pip install --system spatialpandas \
                  easydev \
                  colormap \
                  colorcet \
                  duckdb \
                  dask_geopandas \
                  hydrotools \
                  sidecar \
                  dataretrieval \
                  google-cloud-bigquery

报错详情:

Using Python 3.11.8 environment at: /srv/conda/envs/notebook
Resolved 140 packages in 384ms
× Failed to build numba==0.53.1
├─▶ The build backend returned an error
╰─▶ Call to setuptools.build_meta:__legacy__.build_wheel failed (exit status: 1)

[stderr]
  Traceback (most recent call last):
    File "<string>", line 14, in <module>
    File "/home/jovyan/.cache/uv/builds-v0/.tmpBarfZb/lib/python3.11/site-packages/setuptools/build_meta.py", line 334, in get_requires_for_build_wheel
      return self._get_build_requires(config_settings, requirements=[])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/home/jovyan/.cache/uv/builds-v0/.tmpBarfZb/lib/python3.11/site-packages/setuptools/build_meta.py", line 304, in _get_build_requires
      self.run_setup()
    File "/home/jovyan/.cache/uv/builds-v0/.tmpBarfZb/lib/python3.11/site-packages/setuptools/build_meta.py", line 522, in run_setup
      super().run_setup(setup_script=setup_script)
    File "/home/jovyan/.cache/uv/builds-v0/.tmpBarfZb/lib/python3.11/site-packages/setuptools/build_meta.py", line 320, in run_setup
      exec(code, locals())
    File "<string>", line 50, in <module>
    File "<string>", line 47, in _guard_py_ver
  RuntimeError: Cannot install on Python version 3.11.8; only versions >=3.6,<3.10 are supported.

  hint: This usually indicates a problem with the package or the build environment.

help: numba (v0.53.1) was included because spatialpandas (v0.5.0) depends on numba

但单独执行uv pip install --system <package>逐个安装所有包时,无任何报错。


原因分析

核心差异在于批量安装与逐个安装时,uv的依赖解析逻辑不同:

  • 批量安装时,uv会一次性计算所有待安装包的依赖约束交集,尝试选择满足所有包最低要求的版本。这里spatialpandas==0.5.0对numba的依赖声明未明确限制高版本,导致解析器选中了不兼容Python 3.11的numba==0.53.1。
  • 逐个安装时,解析器仅处理当前单个包的依赖。后续安装的包(如dask_geopandas)可能依赖更高版本的numba(>=0.57版本开始支持Python 3.11),此时uv会自动升级numba到兼容版本,避开了旧版本的安装错误。

解决方案

1. 前置安装兼容版本的numba

先手动安装支持Python 3.11的numba版本,再执行批量安装:

uv pip install --system numba>=0.57
uv pip install --system spatialpandas easydev colormap colorcet duckdb dask_geopandas hydrotools sidecar dataretrieval google-cloud-bigquery

2. 强制覆盖numba版本约束

使用uv的--override参数强制指定兼容的numba版本,让解析器优先选择该版本:

uv pip install --system spatialpandas easydev colormap colorcet duckdb dask_geopandas hydrotools sidecar dataretrieval google-cloud-bigquery --override numba>=0.57

3. 升级spatialpandas到新版本

spatialpandas 0.6.0及以上版本已更新依赖约束,支持更高版本的numba,直接安装最新版即可:

uv pip install --system spatialpandas>=0.6.0 easydev colormap colorcet duckdb dask_geopandas hydrotools sidecar dataretrieval google-cloud-bigquery

内容的提问来源于stack exchange,提问作者F Baig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 14:53:10