当前位置: 首页 > article >正文

PromptSource安装报错

一、现象

运行命令:streamlit run promptsource/app.py 报错:

streamlit run promptsource/app.py Traceback (most recent call last): File "/usr/local/bin/streamlit", line 5, in <module> from streamlit.cli import main File "/usr/local/lib/python3.10/dist-packages/streamlit/__init__.py", line 49, in <module> from streamlit.proto.RootContainer_pb2 import RootContainer File "/usr/local/lib/python3.10/dist-packages/streamlit/proto/RootContainer_pb2.py", line 33, in <module> _descriptor.EnumValueDescriptor( File "/usr/local/lib/python3.10/dist-packages/google/protobuf/descriptor.py", line 920, in __new__ _message.Message._CheckCalledFromGeneratedFile() TypeError: Descriptors cannot be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

二、以下是针对该问题的分步解决方案:

问题原因分析:
该错误源于Protobuf库版本与Streamlit依赖不兼容,通常发生在Protobuf 4.x版本中。以下是三种解决方法:


方法1:降级Protobuf版本(推荐)

# 查看当前protobuf版本
pip show protobuf

# 降级到兼容版本
pip install protobuf==3.20.3

# 清理安装缓存
pip cache purge

# 重新运行应用
streamlit run promptsource/app.py

方法2:设置环境变量(临时方案)

# 运行前添加环境变量(速度会变慢)
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python streamlit run promptsource/app.py

方法3:创建纯净虚拟环境

# 创建并激活虚拟环境(Python 3.7)
conda create -n promptsource_env python=3.7
conda activate promptsource_env

# 安装依赖
pip install promptsource
pip install protobuf==3.20.3

# 运行应用
streamlit run promptsource/app.py

附加说明:

  1. 如果使用Jupyter环境,需重启kernel使版本更改生效

  2. 完整依赖冲突检测命令:

pip check
  1. 项目要求Python 3.7的解决方案:

# 使用pyenv管理多版本
pyenv install 3.7.13
pyenv local 3.7.13


http://www.kler.cn/a/539264.html

相关文章:

  • 指定路径安装Ollama
  • 【DeepSeek × Postman】请求回复
  • mysql8.0使用MHA实现高可用
  • 练习题(2025.2.9)
  • 2025-2-10 deepseek本地部署与本地训练最简版本
  • 面向对象程序设计-实验3
  • 科普书《从一到无穷大》的科普知识推翻百年集论
  • PlantUml常用语法
  • 青少年编程与数学 02-009 Django 5 Web 编程 02课题、开发环境
  • DeepSeek在无人机上应用技术详解
  • leetcode_80删除有序数组中的重复项 II
  • 【算法】快速排序算法的实现:C 和 C++ 版本
  • 信息学奥赛一本通1003
  • 神经网络常见激活函数 6-RReLU函数
  • 每日一题--数组中只出现一次的两个数字
  • Python 入门:文件操作、读写、管理
  • UIAbility 生命周期方法
  • Spring Boot快速开发
  • python migate执行报错
  • 山东大学软件学院人机交互期末复习笔记
  • android的DataBinding的使用
  • 【CubeMX-HAL库】STM32F407—无刷电机闭环控制
  • 【WebSocket探秘】解锁 WebSocket:开启实时交互新境界
  • React 实现自定义进度条(类似于ant design中的progress)
  • Log4j2在Spring项目中的集成与应用
  • 深度求索(DeepSeek)的AI革命:NLP、CV与智能应用的技术跃迁