Bug解决!ImportError: cannot import name MutableMapping from collections

省流:python版本更新 而一些生态库的变量命名没更新变化导致的问题

起因是在win环境下装spark  但是发现这是python底层的问题

于是想写一篇这个错误的博客警戒世人  py实在是太多生态库了

但并不是所有的都维护的很好

大概可以理解成 

python原先有个东西叫collecttions  然后py在3.3之后就把他改名成了_collections_abc

所以就有各种各样的问题!因为问题来自于底层

最简单的解决办法:
根据报错找到最下面那一行

例如我的:

E:\Spark\spark-2.2.0-bin-hadoop2.7\python\lib\py4j-0.10.4-src.zip\py4j\java_collections.py:13
      2 """
      3 Module responsible for converting Java collection classes to Python collection
      4 classes. This module is optional but loaded by default.
   (...)
      9 :author: Barthelemy Dagenais
     10 """
     11 from __future__ import unicode_literals, absolute_import
---> 13 from collections import (
     14     MutableMapping, Sequence, MutableSequence,
     15     MutableSet, Set)
     16 import sys
     18 from py4j.compat import (
     19     iteritems, next, hasattr2, isbytearray,
     20     ispython3bytestr, basestring)

直接找到他的路径  E:\Spark\spark-2.2.0-bin-hadoop2.7\python\lib\py4j-0.10.4-src.zip\py4j\java_collections.py

找到底层的代码直接把名字改过来 把collections改成  _collections_abc

要注意有没有保存到哦、!  我这个文件是在zip下的 所以我需要把他解压出来  用编辑器打开 修改 保存  然后再重新打包回去

这个做法能解决所有的这种问题 从根源出发!