【问题标题】:matplotlib error - no module named tkintermatplotlib 错误 - 没有名为 tkinter 的模块
【发布时间】:2016-07-19 12:53:11
【问题描述】:

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

from matplotlib import pyplot

我收到以下错误:

ImportError: No module named 'tkinter'

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

编辑:此外,我还尝试导入 'tkinter' 和 'Tkinter' - 这些都不起作用(都返回了我提到的错误消息)。

【问题讨论】:

  • 您是否通过import Tkinterimport tkinter 导入了tkinter?
  • ImportError: No module named '_tkinter', please install the python3-tk package?
  • @knh170 不,只是我原始帖子中显示的消息。
  • 如果你打开一个终端,启动python并输入import tkinter(如果你使用的是python 3),它也不起作用?
  • 看起来你使用了自定义安装。重新运行 python 安装程序,按修改,然后勾选 td/tk 和 IDLE

标签: python matplotlib tkinter


【解决方案1】:

适用于 Linux

基于 Debian 的发行版:

sudo apt-get install python3-tk

基于 RPM 的发行版:

sudo yum install python3-tkinter

对于窗户:

对于 Windows,我认为问题在于您没有安装完整的 Python 包。因为 Tkinter 应该随 Python 一起提供。请参阅:http://www.tkdocs.com/tutorial/install.html。 Anaconda 或 ActiveState 公司可以找到适用于 Windows 的优秀 Python 发行版。

测试python模块

python -c "import tkinter"

附言我建议安装ipython,它提供了强大的shell和必要的包。

【讨论】:

  • 它正在工作!谢谢! (我通过您在帖子中放置的链接安装了 anaconda)
  • 如果你在 CentOS 机器上,命令是 sudo yum install python36u-tkinter.x86_64
  • 我正在使用 pycharm,但我遇到了关于缺少包的相同错误。安装 tkinter 包 matplotlib 后工作正常。谢谢@knh170
  • @knh170 我们可以使用 pip 安装 tkinter 吗?我无法搜索与此相关的任何内容
  • 安装 Ubuntu 包 python3-tk 用于 Python3:apt update; apt install python3-tk(更改为 python-tk 用于 Python2)
【解决方案2】:

你可以使用

import matplotlib
matplotlib.use('agg')
import matplotlib.pyplot as plt

如果你根本不想使用tkinter

如果使用一个,别忘了在笔记本顶部使用%matplotlib inline

编辑:agg 是一个不同的后端,如 matplotlib 的tkinter

【讨论】:

  • 这很好,因为由于使用了不需要 X11 的服务器,但我安装的一些程序依赖于 matplotlib。
  • 太棒了!如果有人想知道how this works
  • 如果你想绘制一些东西,这个解决方案不起作用
  • 只是添加到这个答案:agg 是一个非 GUI 后端,所以 plt.show() 不会有任何效果。不过你还是可以plt.savefig(filename)查看文件进行快速调试。
  • 节省了我处理这个 tkinter 错误的时间。
【解决方案3】:

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

  1. 进入开始菜单,输入应用和功能
  2. 在搜索框中搜索“python”,
  3. 选择 Python 版本(例如 Python 3.8.3rc1(32-bit))并点击修改
  4. 在修改设置页面点击修改
  5. 勾选td/tk and IDLE复选框(安装tkinter)并点击下一步

等待安装完成。

【讨论】:

  • 谢谢。这是最有用和最正确的答案。 (当然适用于 Windows 操作系统用户)
【解决方案4】:

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

sudo yum install tkinter

解决问题。

【讨论】:

    【解决方案5】:

    我搜索过这个问题的几乎所有答案都说 Windows 上的 Python 已经安装了 tkinter 和 tcl,我尝试使用 pip 或 actviestate.com 站点下载或安装它们没有运气。我最终发现,当我使用二进制安装程序安装 python 时,我没有选中与 TCL 和 tkinter 相关的模块。因此,我再次运行二进制安装程序并选择在此时选择此选项来修改我的 python 版本。那时不需要手动做任何事情。如果你去你的 python 终端,那么下面的命令应该会显示你的 Python 安装的 tkinter 版本:

    import tkinter
    import _tkinter
    tkinter._test()
    

    【讨论】:

    • 正确。 Windows 安装是唯一可能发生这种情况的系统 - 就像我自己的情况一样。 +1。对于安装了 Windows 的用户来说,这当然值得注意。
    【解决方案6】:

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

    sudo dnf install python3-tkinter
    

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

    $ python3 -m venv myvenv
    $ source myvenv/bin/activate
    

    并使用 pip 添加必要的包

    【讨论】:

      【解决方案7】:

      在 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
      【解决方案8】:

      对于 Windows 用户,请重新运行安装程序。选择修改。选中 tcl/tk 和 IDLE 复选框。对此的描述是“安装 tkinter”

      【讨论】:

        【解决方案9】:

        在 2018 年初的 Ubuntu 上,ubuntu 的 (xenial/16.04) 正常发行版上没有 python3.6-tk,因此即使您有早期版本的 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
        

        现在matplotlib 可以找到tkinter

        编辑

        毕竟我只需要 3.6,诀窍是:

        sudo apt install tk-dev
        

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

        ./configure
        make
        make install
        

        【讨论】:

        • 更新:现在python3.6-tksudo apt install python3.6-tk 在这里工作 :)
        【解决方案10】:

        如果您使用的是 python 3.6,这对我有用:

        sudo apt-get install python3.6-tk
        

        而不是

        sudo apt-get install python3-tk
        

        适用于其他版本的python3

        【讨论】:

        • 我在 ubuntu 16.04 上没有 python3.6-tk 包。
        • @brooks,这里也一样
        • Centos 上也不存在
        • 现在应该可以在 ubuntu 16.04 上使用
        【解决方案11】:

        对于像我这样使用 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()
        

        注意。 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) ...
        

        安装后,一切正常。

        $ 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()
        

        【讨论】:

          【解决方案12】:

          在 CentOS 6.5 和 python 2.7 上我需要做:yum install python27-tkinter

          【讨论】:

          • 我收到“没有可用的包 python27-tkinter。”
          【解决方案13】:

          有时(例如在 osgeo4w 发行版中)tkinter 会被删除。

          尝试更改位于 [python install dir]/matplotlib/mpl-data/matplotlibrc 中的 matplotlib 后端编辑 matplotlibrc 文件,将 backend 参数从 backend: TkAgg 更改为其他类似 backend: Qt4Agg 的内容,如下所述:@987654321 @

          【讨论】:

            【解决方案14】:

            由于我在 Ubuntu 上使用 Python 3.7,我不得不使用:

            sudo apt-get install python3.7-tk
            

            【讨论】:

              【解决方案15】:

              也许你从源代码安装了 python。在这种情况下,您可以重新编译支持 tcl/tk 的 python。

              1. http://www.tcl.tk/software/tcltk/download.html编译和安装tcl/tk,我假设你在/home/xxx/local/tcl-tk/安装了python。
              # install tcl
              wget -c https://prdownloads.sourceforge.net/tcl/tcl8.6.9-src.tar.gz
              tar -xvzf tcl8.6.9-src.tar.gz
              cd tcl8.6.9
              ./configure --prefix=/home/xxx/local/tcl-tk/
              make
              make install
              
              # install tk
              wget -c https://prdownloads.sourceforge.net/tcl/tk8.6.9.1-src.tar.gz
              tar -xvzf tk8.6.9.1-src.tar.gz
              cd tk8.6.9.1
              ./configure --prefix=/home/xxx/local/tcl-tk/
              make
              make install
              
              1. 重新编译支持tcl/tk的python,例如:
              # download the source code of python and decompress it first.
              
              cd <your-python-src-dir>
              ./configure --prefix=/home/xxx/local/python \
               --with-tcltk-includes=/home/xxx/local/tcl-tk/include \
               --with-tcltk-libs=/home/xxx/local/tcl-tk/lib
              make 
              make install
              

              【讨论】:

                【解决方案16】:

                我在 Win x86/64 上遇到了同样的问题,因为我的自定义 Python3.7 安装不包含 Tcl 包,所以只需修改或重新安装你的 python

                https://www.python.org/downloads/release/python-370/

                【讨论】:

                  【解决方案17】:

                  下载 Python 安装文件并点击修改,然后勾选 tcl/tk 并安装。

                  安装完成后,转到安装 python 的文件夹(默认为 C:\Users*您的用户名*\AppData\Local\Programs\Python\Python39\Lib)。

                  复制 tkinter 文件夹并将其粘贴到你的 pycharm 项目的 lib 文件夹中。

                  错误应该解决

                  【讨论】:

                    【解决方案18】:

                    如果您有 pip(您可能会这样做),请在 Windows 上打开 cmd 或 powershell 或在 OS X 或 Linux 上打开终端窗口并尝试此操作(如果您在 Windows 上,请确保 python 在系统路径中):

                    pip install tkinter
                    

                    安装tkinter应该需要一段时间,然后尝试执行这个代码块:

                    from tkinter import *
                    root = Tk()
                    # Your code goes here 
                    root.mainloop()
                    

                    希望这会有所帮助!谢谢!

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2018-02-09
                      • 1970-01-01
                      • 2016-07-20
                      • 2018-02-04
                      • 2023-03-07
                      • 2015-12-16
                      • 2021-08-05
                      相关资源
                      最近更新 更多