python导入pandas包时报错“ModuleNotFoundError: No module named ‘six’”的解决办法

  • 问题描述
  • 问题分析
  • 解决办法

问题描述

  • 我之前在运行从网上复制来的一些数学模型算法时,其中一些算法报错出了如下信息:
  • 当时我在网络上搜索了如何解决这个问题,答案基本都是检查模块是否安装,或者卸载重新安装一下,或者查看模块是否在python路径下,我逐一试了每个可能的方法,无一例外都没解决我的问题。

然后我就将这个问题先放下了,最近我自己写程序,导入pandas模块时又报出了同样的错误,我不死心的又在网络上查找解决办法,其中有个是说six是安装pandas时附带安装的库,有可能我之前下载别的模块时也附带安装了six模块,这个six模块和pandas库不兼容,我按照他的方法卸载six模块,重装pandas库,果真提示我six模块也安装了,我兴奋的试一下程序,依然不行,于是我打开了python的安装的包的路径,,,

问题分析

  • 在site-packages文件夹下,我们可以看到所有安装的包文件,我浏览自己安装的包文件,发现每个包都有两个文件夹,一个是源代码文件夹,一个是dist-info文件夹(该类文件夹中没有.py文件,所以我猜测对包的存在没有影响):
  • 我发现自己竟然没有six的源码文件,只有一个info文件:
  • 可是我刚才明明安装了six模块,为何在当前目录下找不到,我在搜索框中搜索six,又可以搜索到six.py文件
  • 但其在pip文件夹里,我打开了文件所在位置:

  • 两个six文件都在pip的vendor文件夹内(我不知道是不是虚拟python环境),我猜测可能是pip将文件下错了位置,于是想着直接将文件复制到应该在的位置是不是就可以了。

解决办法

  • 第一个six在vendor的“pycache”文件夹内:
  • 我把它复制粘贴到包文件夹的同样的目录下:
  • 另一个six.py文件,我直接粘贴到包文件夹内:
  • 最后我在pychram中导入pandas模块,终于不再报错了。
    总结:这个问题的解决办法是我在试过很多方案都不行的前提下瞎摸索出来的,实际是为什么我也不清楚,如果你遇到和我一样的问题,希望可以给你提供一个解决问题的思路,虽然不能保证一定可以解决,不论这个方法有没有效果,我希望试过的人可以反馈给我方案是否可行,谢谢了

当我写完这篇文章突然突发奇想的删除info文件夹后,发现我导入的模块依然可以运行,但是在pycharm中并不能看到我安装了six模块,所以这就是我为什么之前看到我安装了six库但不能导入的原因。

下图是有info文件夹的效果

两个six文件及six_info源文件