Azure Databricks升级NumPy后仍加载旧版本致umap导入失败求助
解决Azure Databricks中Numpy升级后仍加载旧版本的问题
问题根源
Azure Databricks集群默认自带的Numpy位于系统路径(/databricks/python3/lib/python3.9/site-packages),优先级高于用户通过pip install --upgrade安装的新版本,导致Python始终加载旧版本Numpy,引发UMAP依赖的Numba版本冲突。
解决步骤
方法1:调整模块搜索路径(临时生效,会话级)
- 先确认当前Numpy的版本、安装路径,以及用户站点包位置:
import numpy as np print(f"当前Numpy版本: {np.__version__}") print(f"当前Numpy路径: {np.__file__}") import site user_site = site.getusersitepackages() print(f"用户站点包路径: {user_site}")
- 重新将Numpy安装到用户目录,并调整
sys.path让用户路径优先级最高:
import sys # 升级Numpy到用户目录 !{sys.executable} -m pip install numpy==1.26.0 --user # 将用户站点包路径插入到模块搜索列表最前面 sys.path.insert(0, user_site) # 重新导入验证 import numpy as np print(f"升级后Numpy版本: {np.__version__}") import umap.umap_ as umap
方法2:通过集群库安装(全局生效,永久解决)
- 打开Databricks集群管理页面,切换到库标签页
- 点击安装新库,选择PyPI类型,输入
numpy==1.26.0 - 安装完成后重启集群,此时集群全局使用新版本Numpy,无需调整路径即可直接导入UMAP
方法3:同步升级Numba(可选)
若仍有依赖问题,可同步升级UMAP依赖的Numba库:
!{sys.executable} -m pip install numba --user
注意事项
pkg_resources.require("numpy==1.26.0")失效的原因是Python已经提前加载了系统路径下的旧版本Numpy,此时强制指定版本会触发冲突,必须让Python优先加载用户目录的新版本后再导入。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

