You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Streamlit与Protobuf版本兼容冲突导致无法查看TensorFlow版本的解决方案咨询

Streamlit与Protobuf版本兼容冲突导致无法查看TensorFlow版本的解决方案咨询

这个版本冲突的坑我之前也踩过!给你几个实用的解决思路,你可以根据自己的实际场景选择:

一、用虚拟环境彻底隔离依赖(最推荐)

分别为TensorFlow和Streamlit项目创建独立的虚拟环境,从根源上分开两套依赖,完全避免版本打架:

  • 给TensorFlow单独建环境:
    # 创建虚拟环境
    python -m venv tf_env
    # Windows激活环境
    tf_env\Scripts\activate
    # Mac/Linux激活环境
    source tf_env/bin/activate
    # 安装高版本protobuf和对应TensorFlow
    pip install tensorflow protobuf>=3.20
    
    激活这个环境后,运行print(tf.version.VERSION)就能正常查看TensorFlow版本了。
  • 给Streamlit项目单独建另一个环境:
    python -m venv streamlit_env
    # 激活环境(对应系统命令同上)
    # 安装Streamlit和兼容的低版本protobuf
    pip install streamlit protobuf<=3.20
    
    两个环境完全独立,再也不会有依赖冲突的问题。

二、绕开Protobuf限制,直接查看TensorFlow版本

其实不用tf.version.VERSION也能轻松查到版本,这几个方法不依赖高版本Protobuf,亲测在3.20以下版本也能正常用:

  • 用TensorFlow的基础版本属性:
    import tensorflow as tf
    print(tf.__version__)
    
    tf.__version__是TensorFlow的原生版本属性,属于基础功能,一般不会受Protobuf版本影响。
  • 直接用pip命令查询:
    在终端运行以下命令,直接输出已安装的TensorFlow版本:
    pip show tensorflow
    
    输出内容里的Version字段就是你要找的版本号,连代码都不用写,快捷又方便。

三、降级TensorFlow到兼容Protobuf3.20的版本(适合必须同环境的场景)

如果你必须在同一个环境里同时运行Streamlit和TensorFlow,可以选择一个支持Protobuf<=3.20的TensorFlow版本,比如TensorFlow 2.10.x及更早的版本,大多都兼容Protobuf3.20:

pip install tensorflow==2.10.0 protobuf==3.20.0

⚠️ 注意:降级前要确认你的TensorFlow代码没有用到高版本才有的特性,避免功能受影响。

四、用Conda环境隔离(Anaconda/Miniconda用户首选)

如果你平时用Conda管理环境,操作会更省心,Conda会自动处理环境内的依赖兼容:

# 创建TensorFlow专属环境
conda create -n tf_env python=3.9 tensorflow protobuf>=3.20
conda activate tf_env
# 创建Streamlit专属环境
conda create -n streamlit_env python=3.9 streamlit protobuf<=3.20
conda activate streamlit_env

总结一下:优先选虚拟环境/Conda环境隔离,彻底解决冲突;如果不想折腾环境,直接用第二种方法绕开版本查询的限制,是最快的解决方案!

火山引擎 最新活动