AWS SageMaker Studio中Glue PySpark与Ray内核的Python和pip版本不匹配问题
AWS SageMaker Studio中Glue PySpark与Ray内核的Python版本及pip包不匹配问题
在AWS SageMaker Studio的JupyterLab Space中,使用Glue PySpark与Ray内核时遇到Python版本和pip安装包不匹配的问题:尝试导入IPython时触发ModuleNotFound错误,但执行!pip list | grep ipython显示已安装ipython 8.20.0,!ipython --version也返回8.20.0。
排查过程
1. 使用Glue PySpark与Ray内核
执行代码查看Python路径:
import sys print(sys.path)
返回结果:
['/tmp', '/tmp/spark-7a070785-711d-4791-9ed3-631d12bc29a0/userFiles-298f6845-dc16-4a6c-95e2-0245bbc35529', '/opt/amazon/spark/python/lib/pyspark.zip', '/opt/amazon/spark/python/lib/py4j-0.10.9-src.zip', '/opt/amazon/lib/python3.6/site-packages', '/usr/lib64/python37.zip', '/usr/lib64/python3.7', '/usr/lib64/python3.7/lib-dynload', '/home/spark/.local/lib/python3.7/site-packages', '/usr/lib64/python3.7/site-packages', '/usr/lib/python3.7/site-packages']
但执行!python --version返回3.10.13。
另外,执行pandas.__version__返回1.3.2,而!pip list | grep pandas显示:
pandas 2.1.4 pandas-stubs 2.1.4.231227
2. 使用标准Python 3(ipykernel)
执行代码查看Python路径:
import sys print(sys.path)
返回结果:
['/home/sagemaker-user', '/opt/conda/lib/python310.zip', '/opt/conda/lib/python3.10', '/opt/conda/lib/python3.10/lib-dynload', '', '/opt/conda/lib/python3.10/site-packages']
执行!python --version返回3.10.13,与sys.path指向的版本一致。
执行pandas.__version__返回2.1.4,与!pip list | grep pandas的结果匹配。
结论
Glue PySpark与Ray内核存在版本不一致问题:内核实际使用的是Python 3.7(从sys.path可见),但pip调用的是Python 3.10的环境,导致pip安装的包无法被内核识别,进而出现ModuleNotFound类错误。
已找到类似问题但现有解决方案无效,目前已在GitHub提交issue,官方团队已关注,待修复后更新状态。
内容的提问来源于stack exchange,提问作者Emile Beukes
相关产品推荐
相关产品推荐

