Amazon SageMaker JupyterLab升级Pandas超1.1.5报无匹配分发错误
问题原因
- SageMaker默认JupyterLab环境的pip源为AWS内部托管PyPI镜像,镜像未同步全量版本的pandas安装包,1.1.5以上版本不在镜像可用列表中时,直接执行升级命令就会返回
No matching distribution found错误。 - 旧规格SageMaker Notebook实例默认搭载的Python版本低于3.7.1,而pandas 1.1.5+版本最低要求Python≥3.7.1,pip会自动过滤不符合Python版本兼容要求的安装包,最终触发无匹配版本的报错。
- 未加用户权限参数执行升级时,系统级site-packages目录为只读权限,部分pip版本会将权限不足导致的安装失败误报为找不到匹配发行版。
解决步骤
- 首先校验当前环境Python版本,在Notebook单元格执行:
如果返回版本低于3.7,先切换到实例预置的高版本conda内核,不要在低版本Python环境下尝试升级。!python --version - 跳过AWS内部镜像,指定公网PyPI源执行带用户权限的升级命令,在单元格执行:
!pip install --upgrade "pandas>=1.1.5" -i https://pypi.org/simple/ --user - 如果上述命令执行后仍报错,先卸载预置的锁定版本pandas,再重新安装指定版本:
!pip uninstall -y pandas !pip install pandas==1.3.5 -i https://pypi.org/simple/ --user - 安装完成后重启JupyterLab内核,执行以下命令校验版本:
返回版本号≥1.1.5即升级成功。import pandas as pd print(pd.__version__)
注意:不要直接在conda base环境用conda命令强制升级pandas,会破坏SageMaker预置的SDK依赖,导致S3读写、训练任务调用等内置功能异常。
内容的提问来源于stack exchange,提问作者John Sobanski
相关产品推荐
相关产品推荐

