【问题标题】:import matplotlib fails with "'module' object not callable" error导入 matplotlib 失败,出现“'module' object not callable”错误
【发布时间】:2017-08-10 16:02:53
【问题描述】:

此问题可能看起来与之前提出的问题相似,但事实并非如此。 我有一个单行的 Python 脚本:

import matplotlib

这失败并出现错误:

'module'对象不可调用

random.py - 打印 1 到 100 之间的随机整数

(后面还有 3 行 random.py 的用法)

如果我从命令行启动 python,那么输入

导入matplotlib

这行得通。我可以从模块中实例化类,绘制图形等等。

我完全不知道发生了什么。任何线索表示赞赏。

64 bit x86 Linux machine 上的 Python 版本 2.6.6

【问题讨论】:

  • 该问题不允许判断错误的来源。请提供问题的minimal reproducible example 和完整的错误回溯(指出错误发生在代码的哪一行)。
  • 没有错误回溯。 Python 脚本只有一行。该行是“导入 matplotlib”。我从命令行将其称为“python script.py”。我看到了原始问题中描述的输出。 OTOH,如果我启动 Python CLI,并在“>>>”提示符下键入“import matplotlib”,一切正常。
  • 如果 script.py 包含一行,"random.py - 打印 1 到 100 之间的随机整数(后面是 random.py 的另外 3 行使用)" 从哪里来?如果出现错误,则总是错误回溯,它将由命令下方显示的至少 3 行组成。如果需要,您也可以发布屏幕截图。
  • 我不知道“random.py”行是从哪里来的。脚本中没有其他命令,甚至没有其他导入,除了这一行。我输入'python script.py '。计算机键入返回“模块”对象不可调用”,后跟以“random.py”开头的四行关于使用情况。我已经用 Python 编程了 11 年,从未见过这种情况,也不知道如何进一步调试。因此我的问题。我不是迟钝,我只是不知道如何进行。正如我所说,导入在 Python CLI 中工作。
  • 使用 'python -i' 选项来获取回溯。错误是因为我有自己的 random.py,它位于“官方”random.py 之前的 UNIX 路径中。感谢大家的帮助。

标签: python matplotlib import module


【解决方案1】:

"Matplotlib 是整个包;matplotlib.pyplot 是 matplotlib 中的一个模块;pylab 是与 matplotlib 一起安装的模块。 Pyplot 为底层的面向对象绘图库提供状态机接口”

我从 matplotlib 手册网站上拿了这个,所以你可能想看看。 https://matplotlib.org/faq/usage_faq.html

我不知道您是如何尝试访问您的模块的,但错误在于 matplotlib 不是一个模块,而是一个完整的包,因此您应该从其中调用一个模块。所以你应该把你的模块称为下面显示的样式之一

导入 matplotlib.pyplot

从 matplotlib 导入图或 pyplot 这部分到你的模块。

【讨论】:

  • 我只是想写一个答案,然后你发布了这个。谢谢:)
  • 不客气! :) 如果我偷了你的问题,对不起:(
  • 其实我不明白这个答案。为什么import matplotlib 在这里失败了?请注意import matplotlib 是完全有效的代码。甚至the documentation(请看第 4 点)也使用它。
  • 是的,但正如我之前所说的“我不知道你是如何尝试访问你的模块的。”,根据给定的信息,我可以告诉这个一般错误的信息。由于我们没有任何导致错误的特定操作,他可能还想检查环境变量。也许他可能会导入 matplotlib,然后尝试像 matplotlib(variable) 一样调用它,并且由于 matplotlib 不可调用,因此可能会弹出此错误,其解决方案与我展示的相同。我知道使用 import matplotlib 是完全有效的代码,但之后你所做的可能会导致错误。
  • 我最初的问题确实表明我有一个单行 Python 脚本。那行是“import matplotlib”。
猜你喜欢
  • 2018-03-31
  • 2019-04-07
  • 1970-01-01
  • 2020-12-31
  • 1970-01-01
  • 1970-01-01
  • 2021-07-29
  • 2022-10-17
  • 1970-01-01
相关资源
最近更新 更多