ModuleNotFoundError: No module named google.protobuf 解决方法

今天安装 ns3-gym 的时候,一切都安装完了,运行测试样例,提示错误。搜了一下,好像是个挺常见的错误,在此记录一下解决方法。后面有时间会把 ns3 和 ns3-gym 的安装方法也整理一下,总体来说虽然坑不少,但是还算顺利。下面就记录一下 Python 提示“ModuleNotFoundError: No module named google.protobuf”这个错误的解决方法。

一、错误描述

老唐遇到的错误是这样的,不过也可能是别的样子,反正就是最终提示找不到 google.protobuf 这个包。

Traceback (most recent call last):
  File "./test.py", line 5, in 
    from ns3gym import ns3env
  File "/root/anaconda3/envs/py36/lib/python3.6/site-packages/ns3gym/ns3env.py", line 15, in 
    import ns3gym.messages_pb2 as pb
  File "/root/anaconda3/envs/py36/lib/python3.6/site-packages/ns3gym/messages_pb2.py", line 6, in 
    from google.protobuf.internal import enum_type_wrapper
ModuleNotFoundError: No module named 'google.protobuf'

二、解决方法

目前从 Github 上的讨论结果来看,有人建议安装 google 这个包,有人建议安装 google-cloud,不过下面这个解决方法是点赞最多的,老唐自己试了一下,也确实是有效的。

pip uninstall protobuf
pip uninstall google
pip install google
pip install protobuf

参考:

https://github.com/tensorflow/tensorflow/issues/6341

当然,我们其实也可以通过 conda 来进行安装,效果是一样的。


【AD】美国洛杉矶CN2 VPS/香港CN2 VPS/日本CN2 VPS推荐,延迟低、稳定性高、免费备份_搬瓦工vps

【AD】RackNerd 推出的 KVM VPS 特价优惠,在纽约、西雅图、圣何塞和阿什本每年仅需 12.88 美元!