pyplot imshow()确实可以工作,但在虚拟环境中无法工作(没有名为_tkinter的模块,请安装python tk包),如何修复它?
在我的ubuntu 16.04系统中,pyplot imshow()在系统python和虚拟环境(对于tensorflow)中都可以正常工作。如果文件aa.py包含以下行pyplot imshow()确实可以工作,但在虚拟环境中无法工作(没有名为_tkinter的模块,请安装python tk包),如何修复它?,python,python-2.7,matplotlib,Python,Python 2.7,Matplotlib,在我的ubuntu 16.04系统中,pyplot imshow()在系统python和虚拟环境(对于tensorflow)中都可以正常工作。如果文件aa.py包含以下行 import matplotlib.pyplot as p p.plot(range(20),range(20)) p.show() 当我运行python aa.py时,它运行正常。(我看到一张图表)。但是,当我激活虚拟环境并在其中运行python aa.py时,我会看到以下错误: Traceback (most recen
import matplotlib.pyplot as p
p.plot(range(20),range(20))
p.show()
当我运行python aa.py
时,它运行正常。(我看到一张图表)。但是,当我激活虚拟环境并在其中运行python aa.py
时,我会看到以下错误:
Traceback (most recent call last):
File "aa.py", line 1, in <module>
import matplotlib.pyplot as p
File "/home/ckim/venv2/lib/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/home/ckim/venv2/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 62, in pylab_setup
[backend_name], 0)
File "/home/ckim/venv2/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 4, in <module>
from . import tkagg # Paint image to Tk photo blitter extension.
File "/home/ckim/venv2/lib/python2.7/site-packages/matplotlib/backends/tkagg.py", line 5, in <module>
from six.moves import tkinter as Tk
File "/home/ckim/venv2/lib/python2.7/site-packages/six.py", line 203, in load_module
mod = mod._resolve()
File "/home/ckim/venv2/lib/python2.7/site-packages/six.py", line 115, in _resolve
return _import_module(self.mod)
File "/home/ckim/venv2/lib/python2.7/site-packages/six.py", line 82, in _import_module
__import__(name)
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in <module>
raise ImportError, str(msg) + ', please install the python-tk package'
ImportError: No module named _tkinter, please install the python-tk package
回溯(最近一次呼叫最后一次):
文件“aa.py”,第1行,在
将matplotlib.pyplot导入为p
文件“/home/ckim/venv2/lib/python2.7/site packages/matplotlib/pyplot.py”,第115行,在
_后端模块、新图形管理器、绘图(如果交互式),显示=pylab\u设置()
pylab_设置中的文件“/home/ckim/venv2/lib/python2.7/site packages/matplotlib/backends/__init___;.py”,第62行
[后端名称],0)
文件“/home/ckim/venv2/lib/python2.7/site packages/matplotlib/backends/backend_tkagg.py”,第4行,在
从…起将tkagg#绘制图像导入Tk photo blitter扩展。
文件“/home/ckim/venv2/lib/python2.7/site packages/matplotlib/backends/tkagg.py”,第5行,在
从六点开始,将tkinter作为Tk导入
文件“/home/ckim/venv2/lib/python2.7/site packages/six.py”,第203行,在加载模块中
mod=mod.\u resolve()
文件“/home/ckim/venv2/lib/python2.7/site packages/six.py”,第115行,在
返回导入模块(self.mod)
文件“/home/ckim/venv2/lib/python2.7/site packages/six.py”,第82行,在导入模块中
__导入(名称)
文件“/usr/lib/python2.7/lib tk/Tkinter.py”,第42行,在
请安装python tk包,str(msg)+'
ImportError:没有名为_tkinter的模块,请安装python tk包
我想我以前解决过这个问题,但忘了我是怎么解决的。也许当我创建虚拟环境时,我错过了--system site packages选项?很可能你的虚拟环境没有GUI(至少我在win10 VE上运行Ubuntu时发现了这一点)。有一些变通办法,但并不简单。@BrunoVermeulen嗨,谢谢。可能后端没有工作。我刚刚创建了一个新的虚拟环境,安装了tensorflow 2.0,matplotlib现在可以工作了。我不知道以前发生过什么事。(有一行
matplotlib.use('agg')
错误。在新的虚拟环境中,我不得不注释掉这一行。而旧的虚拟环境即使没有这一行也无法工作。)非常好。请问您安装VE的系统是什么?它是ubuntu 16.04.6。