pythonplotimplot.matplot显示特金

2021-05-16 08:28:59 发布

您现在位置:Python中文网/ 问答频道 /正文

无论是使用python2.7还是python3.5,都会出现这个错误。 我想在硬盘上显示存储为文件的图像,因此我开始执行以下操作,遇到以下错误:

>>> import numpy
>>> import PIL
>>> import matplotlib.pyplot as plt
>>> image = PIL.Image.open("1000_NFI-04710047.png")
>>> a = numpy.array(image)
>>> plt.imshow(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/matplotlib/pyplot.py", line 3142, in imshow
    ax = gca()
  File "/usr/local/lib/python3.5/dist-packages/matplotlib/pyplot.py", line 950, in gca
    return gcf().gca(**kwargs)
  File "/usr/local/lib/python3.5/dist-packages/matplotlib/pyplot.py", line 586, in gcf
    return figure()
  File "/usr/local/lib/python3.5/dist-packages/matplotlib/pyplot.py", line 535, in figure
    **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/matplotlib/backends/backend_tkagg.py", line 81, in new_figure_manager
    return new_figure_manager_given_figure(num, figure)
  File "/usr/local/lib/python3.5/dist-packages/matplotlib/backends/backend_tkagg.py", line 89, in new_figure_manager_given_figure
    window = Tk.Tk()
  File "/usr/lib/python3.5/tkinter/__init__.py", line 1880, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: Can't find a usable tk.tcl in the following directories: 
    /usr/local/lib/tcl8.6/tk8.6 /usr/local/lib/tk8.6 /usr/lib/tk8.6 /lib/tk8.6 /usr/library

/usr/local/lib/tk8.6/tk.tcl: version conflict for package "Tk": have 8.6.5, need exactly 8.6.1
version conflict for package "Tk": have 8.6.5, need exactly 8.6.1
    while executing
"package require -exact Tk  8.6.1"
    (file "/usr/local/lib/tk8.6/tk.tcl" line 16)
    invoked from within
"source /usr/local/lib/tk8.6/tk.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list source $file]"


This probably means that tk wasn't installed properly.

事实上,经过一番研究,检查问题是否存在的更简单的方法就是:

^{pr2}$

在我的例子中,同样的错误出现在这里。在

我想可能是因为我最近把我的ubuntu发行版从14版升级到了16.04版。 在此之前,python3的官方版本是python3.4,但我也安装了python3.5,这是我现在需要使用的版本。 我尝试卸载python3tk包,使用

sudo aptitude remove python3-tk

然后用

sudo aptitude install python3-tk

但这并不能解决问题。在

我访问了tkinter的站点http://www.tkdocs.com/tutorial/install.html,很明显,这个问题可能是因为在编译python时需要知道它可以使用的确切的tck/tk版本。 所以我想我需要完全重新安装/编译python3.5。但是我想知道如何在不破坏ubuntu发行版的情况下做到这一点,因为python3.5现在应该与16.04完全集成。有什么“简单”的方法吗?在

顺便说一句,对于python2.7来说,情况更糟:

Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named tkinter

“python-tk”包已安装。我卸载了它,然后重新安装了它:

sudo aptitude remove python-tk

以及

sudo aptitude install python-tk

但问题依然存在。在

有人知道该怎么办吗? 恐怕谷歌在这方面帮不了我多少忙。。。在

1条回答
网友
1楼 ·

好吧,最后我做了我在问题中建议的:从“官方”站点安装一个新的python3.5,编译它并指定我为此专门安装的tkinter版本的位置,遵循http://www.tkdocs.com/tutorial/install.html中详细说明的说明。而且成功了。具体地说,我安装的版本是python3.5.5,而我以前的版本是python3.5.3。现在,当我输入“python3.5”来调用python终端时,使用的是3.5.5版本。对我有用。在

相关问题