matplotlib错误 - 没有名为tkinter的模块

noa*_*got 183 python tkinter matplotlib

我尝试在Windows 10上通过Pycharm IDE使用matplotlib包.当我运行此代码时:

from matplotlib import pyplot
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ImportError: No module named 'tkinter'
Run Code Online (Sandbox Code Playgroud)

我知道在python 2.x中它被称为Tkinter,但这不是问题 - 我刚刚安装了一个全新的python 3.5.1.

编辑:此外,我还尝试导入'tkinter'和'Tkinter' - 这些都没有工作(两者都返回了我提到的错误信息).

有任何想法吗?提前致谢

knh*_*170 208

sudo apt-get install python3-tk
Run Code Online (Sandbox Code Playgroud)

然后,

>> import tkinter # all fine
Run Code Online (Sandbox Code Playgroud)

编辑:

对于Windows,我认为问题是你没有安装完整的Python包.因为Tkinter应该带有开箱即用的Python.请参阅:http://www.tkdocs.com/tutorial/install.html

我建议安装ipython,它提供强大的shell和必要的包.

  • @knh170 我们可以使用 pip 安装 tkinter 吗?我无法搜索与此相关的任何内容 (3认同)
  • 如果你在CentOS盒子上,命令是`sudo yum install python36u-tkinter.x86_64` (2认同)
  • 安装适用于 Python3 的 Ubuntu 软件包 `python3-tk`:`apt update; apt install python3-tk` (对于 Python2 更改为 `python-tk`) (2认同)

mar*_*xor 78

您可以使用

import matplotlib
matplotlib.use('agg')
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

如果你tkinter根本不想使用.

%matplotlib inline如果使用笔记本电脑,也不要忘记在笔记本电脑的顶部使用.

编辑:agg是一个不同的后端,如tkintermatplotlib.

  • 这很好,因为由于使用服务器,我不需要并且有 X11,但我安装的一些程序依赖于 matplotlib。 (2认同)
  • 极好的!如果有人想知道 [这是如何工作的](https://matplotlib.org/faq/howto_faq.html#generate-images-without-have-a-window-appear) (2认同)
  • 如果您想绘制一些东西,此解决方案将不起作用 (2认同)
  • 只是要添加到此答案中:agg是非GUI后端,因此plt.show()不会有任何作用。但是您仍然可以执行plt.savefig(filename)并查看文件以进行快速调试。 (2认同)

raz*_*zeh 34

在Centos上,包名称和命令是不同的.你需要这样做:

sudo yum install tkinter
Run Code Online (Sandbox Code Playgroud)

解决问题.


use*_*419 20

我搜索此问题的几乎所有答案都说Windows上的Python附带了tkinter和tcl已经安装,我没有运气尝试使用pip或actviestate.com网站下载或安装它们.我最终发现,当我使用二进制安装程序安装python时,我取消选中了与TCL和tkinter相关的模块.所以,我再次运行二进制安装程序并选择修改我的python版本,这次选择此选项.无需手动执行任何操作.如果你去你的python终端,那么以下命令应该显示你用Python安装的tkinter的版本:

import tkinter
import _tkinter
tkinter._test()
Run Code Online (Sandbox Code Playgroud)


sag*_*del 18

如果你使用Fedora,那么首先安装tkinter

sudo dnf install python3-tkinter
Run Code Online (Sandbox Code Playgroud)

我认为你之后不需要导入tkinter我也建议你使用virtualenv

$ python3 -m venv myvenv
$ source myvenv/bin/activate
Run Code Online (Sandbox Code Playgroud)

并使用pip添加必要的包


小智 9

在CentOS 7和Python 3.4上,命令是 sudo yum install python34-tkinter

在Redhat 7.4上使用Python 3.6,命令是 sudo yum install rh-python36-python-tkinter

  • 在Centos 7和Python 3.6上,命令是`sudo yum install python36u-tkinter.x86_64` (3认同)

gdr*_*drt 9

对于Windows用户,无需再次下载安装程序。只需执行以下操作:

  1. 进入开始菜单,输入“ 程序和功能”
  2. 选择Python版本(对我来说是Python 3.6.5(64位)),
  3. 右键单击,按更改
  4. 点击修改
  5. 选择td / tk和IDLE(将安装tkinter),然后单击下一步

等待安装,您就完成了。

  • 谢谢。这是最有用和正确的答案。(当然,对于Windows OS用户) (2认同)

pet*_*EEy 7

对于Windows用户,请重新运行安装程序.选择修改.选中tcl/tk和IDLE框.对此的描述说"安装tkinter"


Jos*_*h.F 7

在Ubuntu,2018年初,python3.6-tkubuntu(xenial/16.04)正常发行版没有,所以即使你有早期版本python-tk也不行.

我的解决方案是使用设置一切python 3.5:

 sudo apt install python3.5-tk
 virtualenv --python=`which python3.5` python-env
 source python-env/bin/activate
 pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

现在matplotlib可以找到tkinter.

编辑:

我只需要3.6分钟,诀窍是:

sudo apt install tk-dev
Run Code Online (Sandbox Code Playgroud)

然后重建python3.6,之后 tk-dev,如:

./configure
make
make install
Run Code Online (Sandbox Code Playgroud)

  • 更新:现在有__IS__一个`python3.6-tk`!`sudo apt install python3.6-tk`在这里工作:) (3认同)

Ped*_*ues 5

对于像我这样使用python 3.7 的穷人。你需要这个python3.7-tk包裹。

sudo apt install python3.7-tk

$ python
Python 3.7.4 (default, Sep  2 2019, 20:44:09)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'tkinter'
>>> exit()
Run Code Online (Sandbox Code Playgroud)

笔记。python3-tk已安装。但不是python3.7-tk

$ sudo apt install python3.7-tk
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  tix python3.7-tk-dbg
The following NEW packages will be installed:
  python3.7-tk
0 upgraded, 1 newly installed, 0 to remove and 34 not upgraded.
Need to get 143 kB of archives.
After this operation, 534 kB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu xenial/main amd64 python3.7-tk amd64 3.7.4-1+xenial2 [143
kB]
Fetched 143 kB in 0s (364 kB/s)
Selecting previously unselected package python3.7-tk:amd64.
(Reading database ... 256375 files and directories currently installed.)
Preparing to unpack .../python3.7-tk_3.7.4-1+xenial2_amd64.deb ...
Unpacking python3.7-tk:amd64 (3.7.4-1+xenial2) ...
Setting up python3.7-tk:amd64 (3.7.4-1+xenial2) ...
Run Code Online (Sandbox Code Playgroud)

安装后,一切顺利。

$ python3
Python 3.7.4 (default, Sep  2 2019, 20:44:09)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> exit()
Run Code Online (Sandbox Code Playgroud)