Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pyplot imshow()确实可以工作,但在虚拟环境中无法工作(没有名为_tkinter的模块,请安装python tk包),如何修复它?_Python_Python 2.7_Matplotlib - Fatal编程技术网

pyplot imshow()确实可以工作,但在虚拟环境中无法工作(没有名为_tkinter的模块,请安装python tk包),如何修复它?

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

在我的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 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。