最近在做一个项目需要一个可视化的前端页面,选择了streamlit。
前几天都好好的,但是今天运行的时候突然报错了:
import streamlit as st
File "D:\anaconda3\envs\DeepLearning\lib\site-packages\streamlit\__init__.py", line 55, in <module>
from streamlit.delta_generator import DeltaGenerator as _DeltaGenerator
File "D:\anaconda3\envs\DeepLearning\lib\site-packages\streamlit\delta_generator.py", line 36, in <module>
from streamlit import config, cursor, env_util, logger, runtime, type_util, util
File "D:\anaconda3\envs\DeepLearning\lib\site-packages\streamlit\cursor.py", line 18, in <module>
from streamlit.runtime.scriptrunner import get_script_run_ctx
File "D:\anaconda3\envs\DeepLearning\lib\site-packages\streamlit\runtime\__init__.py", line 16, in <module>
from streamlit.runtime.runtime import Runtime as Runtime
File "D:\anaconda3\envs\DeepLearning\lib\site-packages\streamlit\runtime\runtime.py", line 31, in <module>
from streamlit.runtime.app_session import AppSession
File "D:\anaconda3\envs\DeepLearning\lib\site-packages\streamlit\runtime\app_session.py", line 35, in <module>
from streamlit.runtime import caching, legacy_caching
File "D:\anaconda3\envs\DeepLearning\lib\site-packages\streamlit\runtime\caching\__init__.py", line 21, in <module>
from streamlit.runtime.caching.cache_data_api import (
File "D:\anaconda3\envs\DeepLearning\lib\site-packages\streamlit\runtime\caching\cache_data_api.py", line 32, in <module>
from streamlit.runtime.caching.cache_errors import CacheError, CacheKeyNotFoundError
File "D:\anaconda3\envs\DeepLearning\lib\site-packages\streamlit\runtime\caching\cache_errors.py", line 18, in <module>
from streamlit import type_util
File "D:\anaconda3\envs\DeepLearning\lib\site-packages\streamlit\type_util.py", line 44, in <module>
from typing_extensions import Final, Literal, Protocol, TypeAlias, TypeGuard, get_args
ImportError: cannot import name 'TypeGuard' from 'typing_extensions' (D:\anaconda3\envs\DeepLearning\lib\site-packages\typing_extensions.py)
Process finished with exit code 1
事实上,在import时就报错了,而且在终端命令行界面输入任何streamlit相关的代码都会同样报错。
问题最终定位到:在导入typing_extensions中的TypeGuard出现错误。
原因:streamlit
版本与typing_extensions
版本之间不匹配。
解决办法:在anaconda prompt中启动你对应的环境,然后更新streamlit
和typing_extensions。
pip install --upgrade streamlit typing-extensions
等待更新完成后再次启动streamlit,问题完美解决。