无法导入 matplotlib.pyplot

Posted

技术标签:

【中文标题】无法导入 matplotlib.pyplot【英文标题】:Unable to import matplotlib.pyplot 【发布时间】:2017-11-03 05:45:06 【问题描述】:

我在 CentOS 6.5 中安装了 python 2.7.10。然后我使用 pip 安装了 matplotlib。但是,尝试导入 matplotlib.pyplot 时出现以下错误。

import matplotlib.pyplot
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/usr/local/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
  File "/usr/local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 6, in <module>
    from six.moves import tkinter as Tk
  File "/usr/local/lib/python2.7/site-packages/six.py", line 203, in load_module
    mod = mod._resolve()
  File "/usr/local/lib/python2.7/site-packages/six.py", line 115, in _resolve
    return _import_module(self.mod)
  File "/usr/local/lib/python2.7/site-packages/six.py", line 82, in _import_module
    __import__(name)
  File "/usr/local/lib/python2.7/lib-tk/Tkinter.py", line 39, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

tkinter 似乎已安装。 "已安装包 tkinter-2.6.6-66.el6_8.x86_64 且最新版本"

我在 python2.6/lib-dynload 中有 _tkinter.so 模块,但在 python2.7/lib-dynload 下与 tkinter 没有任何关系。

/usr/lib64/python2.6/lib-dynload/_tkinter.so /usr/local/lib/python2.7/lib-tk/test/test_tkinter

另外,我在 python 中验证了 sys.path 以获得以下信息:

Python 2.7.10 (default, Jun  1 2017, 18:51:46)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print '\n'.join(sys.path)

/usr/local/lib/python27.zip  
/usr/local/lib/python2.7  
/usr/local/lib/python2.7/plat-linux2  
/usr/local/lib/python2.7/lib-tk
/usr/local/lib/python2.7/lib-old  
/usr/local/lib/python2.7/lib-dynload  
/usr/local/lib/python2.7/site-packages

【问题讨论】:

您是如何在 CentOS 6 上获得 Python 2.7 的?或者,如果您不需要 UI,您可以将后端更改为仅在其他导入之前使用 import matplotlib;matplotlib.use('agg') 渲染 PNG/PDF(请参阅 What is a backend?)。 @NickT - 我手动安装了 2.7.10。我关注了一些来源,但主要是这个:blog.ruterly.com/2015/12/03/Update-python ***.com/questions/5459444/… 看看这个。这解释了无法导入 tkinter 的问题 【参考方案1】:

这可能是您的 python 库路径有问题。检查在哪里 tkinter 安装,并确保您的 Python 解释器可以使用它。你能从tkinter 导入其他东西吗?

【讨论】:

我添加了一些可能与您所询问的内容相关的更多细节。谢谢。 可能是你的python2.6和python2.7都有包,相互不兼容。为什么不卸载python2.6,这可能会解决你的问题。希望对你有帮助。跨度> 【参考方案2】:

尝试安装 tkinter,因为他们说“没有名为 _tkinter 的模块”。 您可以使用该命令执行此操作:

sudo apt-get install python-tk

【讨论】:

apt-get 是为 Debian-likes 准备的,而他的 CentOS 6 将使用 yum 并有不同的软件包名称 @utopia - 如细节中所述,tkinter 似乎已安装。 "已安装包 tkinter-2.6.6-66.el6_8.x86_64 和最新版本"

以上是关于无法导入 matplotlib.pyplot的主要内容,如果未能解决你的问题,请参考以下文章

mysql 表导入向导无法导入 csv 文件

导入 theano 时出错“无法导入名称 gof”

无法从'@angular/forms'导入“导入FormGroup,FormControl [重复]

无法在春季导入 org.apache.poi,因此无法编译

ImportError:无法导入名称“评估”(来自意外导入评估)

vulfocus无法导入镜像