问题解决 AttributeError: module ‘google.protobuf.internal.containers‘ has no attribute ‘MutableMapping‘
在运行的主函数中,导入自己设定的.py文件(设置的一个类),或者导入tensorflow包时,会出现问题:AttributeError: module 'google.protobuf.internal.containers' has no attribute 'MutableMapping'。解决方法:(一)...
在运行的主函数中,导入自己设定的.py文件(设置的一个类),或者导入tensorflow包时,会出现问题:AttributeError: module 'google.protobuf.internal.containers' has no attribute 'MutableMapping'。
解决方法:
(一)检查protoc和protobuf的版本是否一致
1.这里用的是anaconda3, 在开始处找到anaconda3(64 bit)文件下的anaconda prompt,打开。
2.打开之后是下面的。(注意:这里与从电脑中用Win+R打开的运行窗口中输入cmd的不一样)
从anaconda prompt 打开的
用Win+R打开的运行窗口中输入cmd的(不一样的)
3.因为自己当初在pycharm中环境配置时,专门设置了一个文件夹为tensorflow-1.13.2(用来将所有下载的库放进来),我所有的程序也是基于此文件夹配置的,所以我需要先打开该文件夹,再查看protoc和protobuf的版本。
先打开该文件夹:输入 conda activate tensorflow-1.13.2后会出现(tensorflow-1.13.2)即表明进入设置的文件夹中
进入文件中,先后输入 protoc --version ; 再输入 pip show protobuf 。分别查看protoc和protobuf的版本,如果不一样,就安装一样即可。如果一样,问题还没有解决,就看第二种方法。
(二)查看源文件,这里注意,因为我设有自己专门管理库的文件,并设在D盘
文件的路径是:
’D:/anaconda3/envs/tensorflow-1.13.2/Lib/site-packages/google/protobuf/internal/container.py’
(注意:前面标红的地址,一定要对应平常库下载的地址或者对应程序运行环境的地址,前面的地址因每个人的设置也都不同)
中添加一行代码:
from collections.abc import MutableMapping 即可
更多推荐
所有评论(0)