Google Colab导入streamlit报ContextualVersionConflict错误求解决方案
Google Colab导入Streamlit触发ContextualVersionConflict错误解决方案
错误原因
该错误是由于版本依赖不匹配导致:Streamlit依赖的pydeck库要求ipykernel>=5.1.2,但Google Colab默认预装的ipykernel版本为4.10.1,版本不符合要求触发冲突,完整报错信息如下:
ContextualVersionConflict Traceback (most recent call last) <ipython-input-2-8f70969ba6d2> in <module>() 2 import numpy as np 3 import cv2 ----> 4 import streamlit as st 5 from tensorflow import keras 6 from tensorflow.keras.models import load_model 4 frames /usr/local/lib/python3.7/dist-packages/pkg_resources/__init__.py in resolve(self, requirements, env, installer, replace_conflicting, extras) 775 # Oops, the "best" so far conflicts with a dependency 776 dependent_req = required_by[req] ---> 777 raise VersionConflict(dist, req).with_context(dependent_req) 778 779 # push the new requirements onto the stack ContextualVersionConflict: (ipykernel 4.10.1 (/usr/local/lib/python3.7/dist-packages), Requirement.parse('ipykernel>=5.1.2; python_version >= "3.4"'), {'pydeck'})
解决方案
通用解决步骤(优先尝试)
严格按照以下顺序执行命令,不要颠倒顺序:
- 第一步:升级ipykernel到符合要求的版本
!pip install --upgrade ipykernel>=5.1.2 - 第二步:安装Streamlit
!pip install streamlit - 第三步:验证导入
import streamlit as st
备选方案(通用步骤无效时使用)
方案1:强制重装兼容版本ipykernel
避免旧版本文件残留导致的校验不通过:
!pip install --force-reinstall ipykernel==5.5.5 !pip install --force-reinstall streamlit
选择5.5.5版本是因为该版本适配Colab的Python3.7环境,兼容性最优。
方案2:排除pydeck依赖安装
如果不需要使用Streamlit的pydeck可视化相关功能,可以直接跳过pydeck安装规避冲突:
!pip install streamlit --no-deps !pip install altair blinker cachetools click importlib-metadata numpy packaging pandas pillow protobuf pyarrow python-dateutil requests tenacity toml tornado typing-extensions tzlocal validators watchdog
上述命令仅安装Streamlit运行必需的依赖,不会触发ipykernel版本校验。
内容的提问来源于stack exchange,提问作者Annadata Alekhya
相关产品推荐
相关产品推荐

