如果我在pyplot

时间:2018-05-18 18:28:47

标签: python-3.x pandas matplotlib pip importerror

今天早上我遇到了一个奇怪的错误,我希望得到一些背景信息。我有一个解决方法,但我想知道是否存在更深层次的问题。我在网上或其他地方找不到任何东西。

错误: 如果我在matplotlib.pyplot之前导入pandas,我收到错误消息:

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    import matplotlib.pyplot as plt
  File "/usr/lib64/python3.6/site-packages/matplotlib/pyplot.py", line 115, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/usr/lib64/python3.6/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
ModuleNotFoundError: No module named 'matplotlib.backends.backend_qt4agg'

有效的代码:

import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas

plt.plot([1,2,3],[3,2,1])
plt.show()

不再有效的代码:

import pandas
import matplotlib as mpl
import matplotlib.pyplot as plt

plt.plot([1,2,3],[3,2,1])
plt.show()

注意:从文件运行代码失败(python3 test.py),但从命令行解释器运行它。

我今天早上尝试更新我的python包,但我认为它没有做任何事情。我想让Pandas 23使用我在他们的文档中看到的功能。我更新了pip3(&#39; pip install --user pip&#39;),认为它将拥有最新版本。我在使用pip 10.0.1时遇到了一些麻烦(参见https://github.com/pypa/pip/issues/5221),但这似乎已经神奇地解决了,尽管没有真正在该线程上做任何提议的解决方案。无论如何,事实证明我使用的是pip上最新版本的Pandas(0.20.1),所以我保留了它。我还做了一个&nbspf更新&#39;今天早上也试图解决点子问题。

我使用的是Python 3.6.5,Pandas 0.20.1和Matplotlib 2.0.0。运行Fedora 26.我的代码运行正常(在pyplot之前导入pandas),直到尝试更新。

关键是,我做了几件可以打破它的事情,我想找出原因。导入订单应该重要,这似乎是错误的。关于是什么导致这个的任何想法?如果它实际上是一个错误(而不只是一个pebkac问题),我在哪里报告它?

干杯

1 个答案:

答案 0 :(得分:0)

〜/ .matplotlib / matplotlibrc 文件中的后端设置。如果已安装,请将其从TkAgg更改为Agg或其他后端。

或者您可以尝试一下

axios
          .get("/search?q=" + this.state.term)
          .then(res => this.setState({ results: res.data }))
          .catch(() => this.setState({ error: true }));