matplotlib Pandas和pandasgui show导致ImportError

w80xi6nr  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(155)

根据pandasgui docs,我尝试运行以下代码:

import pandas as pd
from pandasgui import show
df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]})
show(df)

但是,我得到一个错误:

ImportError: cannot import name '_c_internal_utils' from partially initialized module 'matplotlib' (most likely due to a circular import) (C:\ProgramData\Anaconda3\envs\Test\lib\site-packages\matplotlib\__init__.py)

根据this的帖子,这似乎与pands和pandasgui import语句都使用相同的matploblib函数/模块引用有关,因此存在循环导入。

import pandas as pd
import pandasgui
df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]})
pandasgui.show(df)

但是我也会得到同样的错误。我该怎么解决呢?
我的python版本是3.11.4|由Anaconda,Inc.
我的pandas版本是2.03,它已经默认安装在我的anaconda环境中,我用Anaconda navigator更新了它。
我的pandasgui是0.2.14版本,我用pip install pandasgui安装了它。我在Anaconda navigator中更新了索引,它也显示了0.2.14版本

uhry853o

uhry853o1#

正如错误所暗示的,当两个或多个模块相互依赖时,我可以看到循环导入发生。这种相互依赖性创建了一个循环,Python无法很好地处理。
如果您安装了多个软件包或它们的不同版本,有时可能会出现软件包冲突。请尝试创建一个新的conda环境:

conda create --name newenv python=3.11
conda activate newenv

现在,在这个干净的环境中安装所需的软件包:

pip install pandas
pip install pandasgui

在这个新环境中运行代码。
有时候,这是一个特定版本的依赖库导致的问题。你可以尝试降级matplotlib,看看这是否解决了问题:

pip install matplotlib==3.4.2

然后再次运行代码。
此外,确保您的所有软件包都是最新的:

pip install pandasgui --upgrade
pip install pandas --upgrade
pip install matplotlib --upgrade
sxpgvts3

sxpgvts32#

您遇到的error可能是由于pandasmatplotlib库之间的循环导入问题。要解决此问题:

  • 使用pip重新编译pandasgui库:
pip uninstall pandasgui
  • matplotlib库更新到最新版本:
pip install --upgrade matplotlib
  • 编译pandasgui库:
pip install pandasgui

如果问题仍然存在,您可能需要考虑降级您的matplotlib版本

相关问题