首页 > 编程问答 >ImportError:无法从“google.protobuf”导入名称“runtime_version”

ImportError:无法从“google.protobuf”导入名称“runtime_version”

时间:2024-07-22 13:31:08浏览次数:5  
标签:python path environment-variables importerror site-packages

PS D:\RealTimeObjectDetection> python Tensorflow/models/research/object_detection/model_main_tf2.py --model_dir=Tensorflow/workspace/models/my_ssd_mobnet --pipeline_config_path=Tensorflow/workspace/models/my_ssd_mobnet/pipeline.config --num_train_steps=10000
Traceback (most recent call last):
  File "D:\RealTimeObjectDetection\Tensorflow\models\research\object_detection\model_main_tf2.py", line 31, in <module>
    import model_lib_v2
  File "D:\RealTimeObjectDetection\Tensorflow\models\research\object_detection\model_lib_v2.py", line 29, in <module>
    import eval_util
  File "D:\RealTimeObjectDetection\Tensorflow\models\research\object_detection\eval_util.py", line 35, in <module>
    from object_detection.metrics import coco_evaluation
  File "D:\RealTimeObjectDetection\Tensorflow\models\research\object_detection\metrics\coco_evaluation.py", line 28, in <module>
    from object_detection.utils import object_detection_evaluation
  File "D:\RealTimeObjectDetection\Tensorflow\models\research\object_detection\utils\object_detection_evaluation.py", line 46, in <module>
    from object_detection.utils import label_map_util
  File "D:\RealTimeObjectDetection\Tensorflow\models\research\object_detection\utils\label_map_util.py", line 29, in <module>
    from object_detection.protos import string_int_label_map_pb2
  File "D:\RealTimeObjectDetection\Tensorflow\models\research\object_detection\protos\string_int_label_map_pb2.py", line 9, in <module>
    from google.protobuf import runtime_version as _runtime_version
ImportError: cannot import name 'runtime_version' from 'google.protobuf' (C:\Users\varda\AppData\Local\Programs\Python\Python311\Lib\site-packages\google\protobuf\__init__.py)

是版本错误吗?我还尝试在用户变量中设置 PYTHONPATH 变量,但编译器仍在查找 object_detection 文件的站点包,而我将路径设置为 D 驱动器中的不同位置


是对的,这是一个版本错误,但它可能与 PYTHONPATH 无关,而与 protobuf 包本身有关。此错误表明安装的 google.protobuf 版本没有 runtime_version 属性,这在该库的最新版本中是存在的。

以下是修复此错误的步骤:

1. 升级 protobuf 包:

打开命令提示符或终端并运行以下命令:

bash pip install --upgrade protobuf

这将升级 protobuf 包到最新版本,其中应该包含 runtime_version 属性。

2. 重新启动内核或终端:

升级软件包后,请务必重新启动内核(如果使用的是 Jupyter Notebook)或关闭并重新打开命令提示符或终端。这将确保更改生效。

3. 验证安装:

运行以下 Python 代码以验证 protobuf 版本和 runtime_version 属性:

python import protobuf print(protobuf.__version__) print(protobuf.runtime_version)

这应该打印 protobuf 的版本号,然后打印 runtime_version 。如果这没有引发错误,那么已经成功修复了该问题。

4. 如果问题仍然存在:

  • 检查虚拟环境: 确保在正确的虚拟环境中工作,并且 protobuf 包已安装在该环境中。
  • 卸载并重新安装: 尝试卸载并重新安装 protobuf tensorflow 包: bash pip uninstall protobuf tensorflow pip install protobuf tensorflow
  • TensorFlow 版本兼容性: 确保使用的 TensorFlow 版本与 protobuf 版本兼容。可以参考 TensorFlow 文档以获取兼容性信息。

完成这些步骤后,应该能够解决 ImportError 并运行的目标检测脚本。

标签:python,path,environment-variables,importerror,site-packages
From: 78671850

相关文章

  • 无法在 Ubuntu 20.04 中安装 python3-venv,一些损坏的软件包
    这可能很长,但请耐心看完当我在关注这篇文章时尝试安装python3-venvsudoaptinstallbuild-essentiallibssl-devlibffi-devpython3-dev它抛出了以下错误:libffi-devpython3-devReadingpackagelists...DoneBuildingdependencytreeRead......
  • 正则表达式在python爬虫中常用的方法举例
    在爬虫中,正则表达式被广泛用于从网页中提取特定信息。以下是一些常用的正则表达式方法举例,以及它们在爬虫中的典型应用场景:1.提取URLimportreurl_pattern=r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'urls=re.findall(url_pattern,html_content)用于从网页中......
  • 使用 Python XlsxWriter 将 DatePicker 添加到 Excel 单元格中?
    我正在尝试使用PythonXlsxWriter生成的Excel创建输入表单。我想知道是否可以在Excel单元格中添加一个迷你日历(作为DatePicker)供用户输入日期?我偶然发现了Microsoft支持团队提供的本指南插入日期选择器:|||https://support.microsoft.com/en-us/office/......
  • [1037] Python operation of three keys shortcut (pynput)
    Theshortcutof win+shift+leftdoesnotworkwellin pyautogui,butitworkswellin pynput.MovingtheActiveWindowtoaDifferentMonitor: You’reright;PyAutoGUIdoesn’tdirectlysupportmovingwindowsacrossmonitorswiththeeleganceofaswan......
  • Python:定期检测断开故障的USB设备并重新初始化实例
    我有一个USB设备,有时会通过USB端口发送串行数据。问题是设备出现故障,有时会无缘无故地断开连接并再次连接到电脑。问题不大,但在这些情况下我需要重新初始化serial.Serial(port)实例,这有点烦人。该设备没有可以从我那里收到的任何命令,我可以验证它是否已连接。我可以......
  • 【校招+社招】华为OD机试 - 拼接URL(Java、JavaScript、Python、C、C++)
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)算法概述URL拼接(URL拼接)是指将多个URL组件(方案、主机、端口、路径、查询参......
  • 使用 Google Colab 时,Python 包“datasets”从 virtualenv 目录“site-packages”中消
    我正在使用GoogleColab并尝试创建一个虚拟环境来工作。我的代码是:fromgoogle.colabimportdrivedrive.mount('/content/drive')!pipinstallvirtualenvmyenv_dir='/content/drive/MyDrive/virtual_env/'!virtualenv{myenv_dir}!chmod+x{myen......
  • 路由追踪以及常用命令tracert\pathping
    一、常用的命令:对于网络工程师来说,需要熟练掌握的Windows路由追踪命令有两个:tracert和pathping,其中pathping是tracert和ping命令的结合,不但可以追踪目标IP地址的路由,还可以测试经过的每一跳的时延和丢包率。1.1tracert命令及举例tracert命令,通过向目标IP地址发送不同T......
  • Python 3 - openpyxl - 按名称迭代列
    使用openpyxl不按数字而是按列标题(ws第一行中的字符串值)迭代列的最简单方法是什么:如下所示:forcellinws.columns['revenue']:print(cell.value)不幸的是,openpyxl不直接支持像ws.columns['revenue']这样按列标题进行迭代。openpyxl......
  • Python selenium 网络抓取 recaptcha
    我想抓取一个网站,但在此之前有一个验证码,我什至使用api获取了数据,并且我还将其注入到网站中,因为网页没有提交按钮,我无法提交。流程是这样的,如果我解决同一网址中的验证码,隐藏的内容将被显示。但它并没有得到解决。我到处都找过了。我找不到解决方案。谁能帮我解决这个问题?......