ImportError:没有名为“pandas.core.internals.managers”的模块; 'pandas.core.internals' 不是一个包

Posted

技术标签:

【中文标题】ImportError:没有名为“pandas.core.internals.managers”的模块; \'pandas.core.internals\' 不是一个包【英文标题】:ImportError: No module named 'pandas.core.internals.managers'; 'pandas.core.internals' is not a packageImportError:没有名为“pandas.core.internals.managers”的模块; 'pandas.core.internals' 不是一个包 【发布时间】:2019-07-07 00:16:36 【问题描述】:

当我尝试读取由以前版本的 pandas 保存的 pickle 文件时,它产生了一个 ImportError

ImportError: No module named 'pandas.core.internals.managers'; 'pandas.core.internals' 不是一个包

*** 没有命中,所以我想分享我对这个特定问题的解决方案。

【问题讨论】:

【参考方案1】:

由于以前保存的泡菜文件的编码,此错误消失。如果您将 pandas 更新为新修订的版本,则会产生此导入错误。

【讨论】:

运行python3 -m pip install --upgrade pandas更新pandas。 这是否严重意味着无法在 pandas 0.24 中打开使用 pandas 0.23 生成的 pickle 文件,也无法在两种格式之间进行转换? @LorenzWalthert 实际上,有一个后门。这听起来很假,但它确实有效。使用pandas 0.23 打开您的pickle 文件并将其另存为另一种格式,例如json。然后,使用pandas 0.24 打开json 文件并保存pickle 格式化文件。 谢谢,我升级了 Pandas:pip install --upgrade pandas .. 问题解决了。 对我来说,我使用的是相同的环境(因此 python 和 pandas 的版本相同),但我仍然收到此错误..【参考方案2】:

我有同样的问题,但对我来说,它似乎来自泡菜包/与熊猫包的交互。

我有 Pandas 0.23.4 版。 我用pandas.Dataframe.to_pickle 保存了一些泡菜文件,python 3.6.6 和 Pandas 版本 0.23.4。 然后我升级到 python 3.7.2(Pandas 版本 0.23.4),并且可以使用pandas.Dataframe.read_pickle 读取那些泡菜文件。 接下来,我将 pandas 升级到 pandas 0.24.1,它对我有用。我可以再次阅读这些文件。

【讨论】:

非常感谢,确实,从 0.23 升级到 0.24 可以解决问题! 如果您像我一样在 Jupyter Notebook 中遇到此问题:您可能需要重新启动笔记本才能使新安装的 pandas 正常工作。【参考方案3】:

我在使用 pandas 版本 0.23.4 时遇到了同样的错误。

我已经通过以下方式明确安装了 pandas 0.24.1 版本:

pip3 install pandas==0.24.1

这解决了我的问题(我使用的 Python 版本是 3.5)

【讨论】:

【参考方案4】:

conda update pandas

如果您使用 conda 包管理器。

【讨论】:

【参考方案5】:

更新 pandas 是大多数情况下的最佳解决方案。但是,如果您在更新 pandas 版本时遇到限制,并且您需要使用在更高版本中生成和腌制的 pandas 对象,您可以添加类位置图,如下所示。

from pandas.compat.pickle_compat import _class_locations_map

_class_locations_map.update(
    ('pandas.core.internals.managers', 'BlockManager'): ('pandas.core.internals', 'BlockManager')
)

【讨论】:

当有人从 pandas 0.25 创建泡菜并且我被 0.20.3 锁定时为我工作

以上是关于ImportError:没有名为“pandas.core.internals.managers”的模块; 'pandas.core.internals' 不是一个包的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:没有名为枚举的模块

ImportError:没有名为“appdirs”的模块

ImportError:没有名为 websocket 的模块

ImportError:没有名为“backports”的模块

ImportError:没有名为 ghostscript 的模块

ImportError:运行火花时没有名为请求的模块