ข้อผิดพลาด matplotlib - ไม่มีโมดูลชื่อ tkinter


195

ฉันพยายามใช้แพ็คเกจ matplotlib ผ่าน Pycharm IDE บน windows 10 เมื่อฉันเรียกใช้รหัสนี้:

from matplotlib import pyplot

ฉันได้รับข้อผิดพลาดต่อไปนี้:

ImportError: No module named 'tkinter'

ฉันรู้ว่าใน python 2.x มันถูกเรียกว่า Tkinter แต่นั่นไม่ใช่ปัญหา - ฉันเพิ่งติดตั้ง python 3.5.1 ใหม่

แก้ไข: นอกจากนี้ฉันยังพยายามนำเข้า 'tkinter' และ 'Tkinter' - ไม่สามารถใช้งานได้ (ทั้งคืนข้อความแสดงข้อผิดพลาดที่ฉันพูดถึง)


คุณนำเข้า tkinter โดยimport Tkinterหรือimport tkinter?
Avión

1
ใช่ลืมที่จะพูดถึงว่า ... ได้รับข้อความแสดงข้อผิดพลาดเดียวกัน
noamgot

ImportError: No module named '_tkinter', please install the python3-tk package?
knh170

@ knh170 ไม่เพียงแค่ข้อความที่แสดงในโพสต์ต้นฉบับของฉัน
noamgot

4
ดูเหมือนว่าคุณติดตั้งที่กำหนดเองที่ใช้ติดตั้ง .Rerun หลามกดแก้ไขแล้วเห็บ td / tk และ IDLE
omilus

คำตอบ:


221
sudo apt-get install python3-tk

จากนั้น

>> import tkinter # all fine

แก้ไข :

สำหรับ Windows ฉันคิดว่าปัญหาคือคุณไม่ได้ติดตั้งแพ็คเกจ Python ที่สมบูรณ์ เนื่องจาก Tkinter ควรจัดส่งพร้อม Python นอกกรอบ ดู: http://www.tkdocs.com/tutorial/install.html

ฉันแนะนำให้ติดตั้งipythonซึ่งให้เชลล์ที่ทรงพลังและแพ็คเกจที่จำเป็นเช่นกัน


มันกำลังทำงาน! ขอบคุณ! (ผมติดตั้งงูใหญ่ผ่านการเชื่อมโยงที่คุณใส่ในโพสต์ของคุณ)
noamgot

3
หากคุณอยู่ในกล่อง CentOS คำสั่งคือsudo yum install python36u-tkinter.x86_64
n1c9

ฉันใช้ pycharm และฉันได้รับข้อผิดพลาดเดียวกันกับแพ็คเกจที่ขาดหายไป หลังจากติดตั้งแพคเกจ tkinter matplotlib ทำงานได้ดี ขอบคุณ @ knh170
debaonline4u

ทำงานกับฉันด้วย Ubuntu 18.04 โดยใช้ python3 ใน venv เพียงติดตั้ง: sudo apt-get install python3-tk จากนั้นคุณสามารถทดสอบได้จาก python3 shell: จาก matplotlib import pyplot matplotlib
serfer2 2

1
@ knh170 เราสามารถติดตั้ง tkinter ด้วย pip ได้ไหม? ฉันไม่สามารถค้นหาสิ่งที่เกี่ยวข้องกับเรื่องนี้ได้
Scott Yang

99

คุณสามารถใช้ได้

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

ถ้าคุณไม่ต้องการใช้tkinterเลย

อย่าลืมใช้%matplotlib inlineที่ด้านบนของโน้ตบุ๊คของคุณหากใช้งาน

แก้ไข: aggเป็นแบ็กเอนด์ที่แตกต่างกันเช่นtkinterสำหรับ matplotlib


1
นี่เป็นสิ่งที่ดีเพราะเนื่องจากทำงานกับเซิร์ฟเวอร์ฉันไม่ต้องการและมี X11 แต่บางโปรแกรมที่ฉันติดตั้งมีการพึ่งพา matplotlib
rien333

2
Fantastic! ในกรณีที่ทุกคนสงสัยว่ามันทำงานอย่างไร
แมตต์

2
วิธีแก้ปัญหานี้ใช้ไม่ได้ผลถ้าคุณต้องการพล็อตเรื่อง
Beyhan Gül

4
เพียงเพิ่มคำตอบนี้: aggเป็นแบ็กเอนด์ที่ไม่ใช่ GUI ดังนั้นplt.show()จะไม่มีผลกระทบใด ๆ แต่คุณยังสามารถทำplt.savefig(filename)และดูไฟล์สำหรับการดีบักอย่างรวดเร็ว
Nico

1
ประหยัดเวลาในการจัดการกับข้อผิดพลาด tkinter นี้
รำคาญ

35

บน Centos ชื่อแพ็กเกจและคำสั่งจะแตกต่างกัน คุณจะต้องทำ:

sudo yum install tkinter

เพื่อแก้ไขปัญหา


31

สำหรับผู้ใช้Windowsไม่จำเป็นต้องดาวน์โหลดตัวติดตั้งอีกครั้ง เพียงทำต่อไปนี้:

  1. ไปที่เมนูเริ่มต้นพิมพ์โปรแกรมและคุณลักษณะ ,
  2. เลือกรุ่น Python (สำหรับฉันคือPython 3.6.5 (64 บิต) )
  3. คลิกขวากดเปลี่ยน ,
  4. คลิกปรับเปลี่ยน ,
  5. เลือกtd / tk และ IDLE (ซึ่งติดตั้ง tkinter) และคลิกต่อไป

รอการติดตั้งเสร็จแล้ว


4
ขอบคุณ. มันเป็นคำตอบที่มีประโยชน์และถูกต้องที่สุดในหมู่คนอื่น ๆ (สำหรับผู้ใช้ Windows OS แน่นอน)
Ruslan K.

20

คำตอบเกือบทั้งหมดที่ฉันค้นหาสำหรับปัญหานี้บอกว่า Python บน Windows มาพร้อมกับ tkinter และ tcl ที่ติดตั้งไว้แล้วและฉันโชคไม่ดีที่พยายามดาวน์โหลดหรือติดตั้งโดยใช้ pip หรือเว็บไซต์ actviestate.com ในที่สุดฉันก็พบว่าเมื่อฉันติดตั้ง python โดยใช้ตัวติดตั้งแบบไบนารีฉันไม่ได้เลือกโมดูลที่เกี่ยวข้องกับ TCL และ tkinter ดังนั้นฉันจึงรันตัวติดตั้งไบนารีอีกครั้งและเลือกที่จะแก้ไขเวอร์ชันหลามของฉันในเวลานี้เลือกตัวเลือกนี้ ไม่จำเป็นต้องทำอะไรด้วยตนเองแล้ว หากคุณไปที่ terminal python ของคุณคำสั่งต่อไปนี้จะแสดงเวอร์ชั่นของ tkinter ที่ติดตั้งไว้กับ Python ของคุณ:

import tkinter
import _tkinter
tkinter._test()

1
แก้ไข. การติดตั้ง Windows เป็นระบบเดียวที่สามารถเกิดขึ้นได้ - เช่นเดียวกับตัวฉัน +1 นี่เป็นสิ่งที่ควรค่าสำหรับผู้ใช้ที่ติดตั้ง Windows
marcushobson

18

หากคุณใช้ fedora ให้ติดตั้ง tkinter ก่อน

sudo dnf install python3-tkinter

ฉันไม่คิดว่าคุณต้องนำเข้า tkinter หลังจากนั้นฉันยังแนะนำให้คุณใช้ virtualenv

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

และเพิ่มแพ็คเกจที่จำเป็นโดยใช้ pip


10

บน CentOS 7 และ Python 3.4 คำสั่งคือ sudo yum install python34-tkinter

บน Redhat 7.4 ด้วย Python 3.6 คำสั่งคือ sudo yum install rh-python36-python-tkinter


3
ใน Centos 7 และ Python 3.6 คำสั่งคือsudo yum install python36u-tkinter.x86_64
Rob Hall

8

สำหรับผู้ใช้ windows ให้รันตัวติดตั้งอีกครั้ง เลือกแก้ไข ทำเครื่องหมายที่ช่องสำหรับ tcl / tk และ IDLE คำอธิบายสำหรับสิ่งนี้กล่าวว่า "ติดตั้ง tkinter"


8

ใน Ubuntu ต้นปี 2561 ไม่มีpython3.6-tkการแจกแจงแบบปกติของ ubuntu (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

และตอนนี้สามารถหาได้matplotlibtkinter

แก้ไข :

ฉันต้องการ 3.6 หลังจากนั้นและเคล็ดลับคือ:

sudo apt install tk-dev

และสร้าง python3.6 ใหม่หลังจาก tk-devเช่น:

./configure
make
make install

3
อัพเดท: ตอนนี้มีISpython3.6-tk ! sudo apt install python3.6-tkทำงานได้ที่นี่ :)
ลูอิส

4

หากคุณใช้ python 3.6 สิ่งนี้ใช้ได้กับฉัน:

sudo apt-get install python3.6-tk

แทน

sudo apt-get install python3-tk

ใช้งานได้กับ python3 รุ่นอื่น


4
ฉันไม่มีแพ็คเกจ python3.6-tk ใน Ubuntu 16.04
Brooks

@ บรูค, เหมือนกันที่นี่
ฟรี Url

ไม่มีอยู่ใน Centos
Rob Hall เมื่อ

มันควรจะใช้ได้ตอนนี้ในอูบุนตู 16.04
Yu-Lin Chen

3

สำหรับคนที่ไม่ดีเช่นฉันใช้หลาม 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()


2

บางครั้ง (ตัวอย่างเช่นในการกระจาย osgeo4w) tkinter จะถูกลบออก

ลองเปลี่ยน matplotlib แบ็กเอนด์แก้ไขไฟล์matplotlibrc ที่อยู่ใน[python install dir]/matplotlib/mpl-data/matplotlibrcการเปลี่ยนพารามิเตอร์ของแบ็กเอนด์จากbackend: TkAggเป็นอย่างอื่นbackend: Qt4Aggที่อธิบายไว้ที่นี่: http://matplotlib.org/faq/usage_faq.html#what-is-a-backend



0

บางทีคุณอาจติดตั้งหลามจากแหล่งที่มา ในกรณีนี้คุณสามารถคอมไพล์ไพ ธ อนอีกครั้งด้วยการรองรับ tcl / tk

  1. complie และติดตั้ง TCL / TK จากhttp://www.tcl.tk/software/tcltk/download.html/home/xxx/local/tcl-tk/ฉันจะสมมติว่าคุณติดตั้งหลามที่
# 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 ที่รองรับเช่น:
# 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

0

ฉันมีปัญหาเดียวกันกับ Win x86 / 64 เนื่องจากการติดตั้ง Python3.7 ที่กำหนดเองของฉันไม่ได้รวมแพ็คเกจ Tcl ดังนั้นเพียงแค่ปรับเปลี่ยนหรือติดตั้งหลามของคุณอีกครั้ง

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

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.