今天安装 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 来进行安装,效果是一样的。