kesalahan matplotlib - tidak ada modul bernama tkinter

194

Saya mencoba menggunakan paket matplotlib melalui Pycharm IDE di windows 10. ketika saya menjalankan kode ini:

from matplotlib import pyplot

Saya mendapatkan kesalahan berikut:

ImportError: No module named 'tkinter'

Saya tahu bahwa dalam python 2.x itu disebut Tkinter, tapi itu bukan masalah - Saya baru saja menginstal python 3.5.1 yang baru.

EDIT: selain itu, saya juga mencoba mengimpor 'tkinter' dan 'Tkinter' - tidak ada yang berhasil (keduanya mengembalikan pesan kesalahan yang saya sebutkan).

noamgot
sumber
Sudahkah Anda mengimpor tkinter oleh import Tkinteratau import tkinter?
Avión
1
ya, lupa menyebutkan bahwa ... mendapat pesan kesalahan yang sama
noamgot
ImportError: No module named '_tkinter', please install the python3-tk package?
knh170
@ knh170 tidak, cukup pesan yang ditampilkan di posting asli saya.
noamgot
4
sepertinya Anda menggunakan instalasi khusus. Jalankan kembali installer python, tekan ubah lalu centang td / tk dan IDLE
omilus

Jawaban:

221
sudo apt-get install python3-tk

Kemudian,

>> import tkinter # all fine

Edit :

Untuk Windows, saya pikir masalahnya adalah Anda tidak menginstal paket Python lengkap. Karena Tkinter harus dikirim dengan Python di luar kotak. Lihat: http://www.tkdocs.com/tutorial/install.html

Saya sarankan instal ipython , yang menyediakan shell yang kuat dan paket yang diperlukan juga.

knh170
sumber
INI BEKERJA! Terima kasih! (Saya memasang anaconda melalui tautan yang Anda pasang di pos Anda)
noamgot
3
jika Anda menggunakan kotak CentOS, perintahnya adalahsudo yum install python36u-tkinter.x86_64
n1c9
Saya menggunakan pycharm dan saya mendapatkan kesalahan yang sama tentang paket yang hilang. Setelah menginstal paket tkinter matplotlib bekerja dengan baik. Terima kasih @ knh170
debaonline4u
Bekerja untuk saya dengan Ubuntu 18.04 menggunakan python3 di venv. Cukup instal: sudo apt-get install python3-tk Kemudian Anda dapat menguji dari shell python3: dari matplotlib import pyplot
serfer2
1
@ knh170 Bisakah kita menginstal tkinter menggunakan pip? Saya tidak dapat mencari apa pun yang terkait dengan ini
Scott Yang
99

kamu bisa memakai

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

jika Anda tidak ingin menggunakan tkintersama sekali.

Juga jangan lupa untuk menggunakan %matplotlib inlinedi bagian atas buku catatan Anda jika menggunakannya.

EDIT: aggadalah backend yang berbeda seperti tkinteruntuk matplotlib.

markroxor
sumber
1
Ini bagus, karena karena bekerja dengan server saya tidak memerlukan dan memiliki X11, tetapi beberapa program yang saya instal memiliki ketergantungan pada matplotlib.
rien333
2
Fantastis! Kalau-kalau ada yang bertanya-tanya bagaimana ini bekerja
Matt
2
solusi ini tidak berfungsi jika Anda ingin merencanakan sesuatu
Beyhan Gül
4
Hanya untuk menambahkan jawaban ini: aggadalah backend non-GUI, jadi plt.show()tidak akan berpengaruh apa pun. Tetapi Anda masih bisa melakukan plt.savefig(filename)dan melihat file untuk debugging cepat.
Nico
1
Menghemat waktu saya dari berurusan dengan kesalahan tkinter ini.
annoying_squid
35

Pada Centos, nama dan perintah paket berbeda. Anda harus melakukan:

sudo yum install tkinter

Menyelesaikan masalah.

razeh
sumber
29

Untuk pengguna Windows , tidak perlu mengunduh lagi penginstal. Lakukan saja yang berikut ini:

  1. Pergi ke menu mulai, ketik Program dan Fitur ,
  2. Pilih versi Python (bagi saya itu Python 3.6.5 (64-bit) ),
  3. Klik kanan, tekan Ubah ,
  4. Klik Ubah ,
  5. Pilih td / tk dan IDLE (yang menginstal tkinter) dan klik berikutnya .

Tunggu instalasi dan selesai.

gdrt
sumber
4
Terima kasih. Ini adalah jawaban yang paling berguna dan benar di antara yang lainnya. (Untuk pengguna OS Windows tentu saja)
Ruslan K.
20

Hampir semua jawaban yang saya cari untuk masalah ini mengatakan bahwa Python di Windows dilengkapi dengan tkinter dan tcl yang sudah diinstal, dan saya tidak beruntung mencoba mengunduh atau menginstalnya menggunakan pip, atau situs actviestate.com. Saya akhirnya menemukan bahwa ketika saya menginstal python menggunakan installer biner, saya telah menghapus centang pada modul yang terkait dengan TCL dan tkinter. Jadi, saya menjalankan penginstal biner lagi dan memilih untuk memodifikasi versi python saya saat ini dengan memilih opsi ini. Tidak perlu melakukan apa pun secara manual. Jika Anda pergi ke terminal python Anda, maka perintah berikut akan menunjukkan kepada Anda versi tkinter yang diinstal dengan Python Anda:

import tkinter
import _tkinter
tkinter._test()
pengguna58419
sumber
1
Benar. Instalasi Windows adalah satu-satunya sistem di mana ini bisa terjadi - seperti yang terjadi pada saya sendiri. +1. Hal ini tentu patut diperhatikan bagi pengguna yang menginstal Windows.
marcushobson
18

Jika Anda menggunakan fedora maka instal tkinter terlebih dahulu

sudo dnf install python3-tkinter

Saya tidak berpikir Anda perlu mengimpor tkinter setelah itu saya juga menyarankan Anda untuk menggunakan virtualenv

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

Dan tambahkan paket yang diperlukan menggunakan pip

soud poudel
sumber
10

Pada CentOS 7 dan Python 3.4, perintahnya adalah sudo yum install python34-tkinter

Pada Redhat 7.4 dengan Python 3.6, perintahnya adalah sudo yum install rh-python36-python-tkinter

Krzysztof Buchacz
sumber
3
Pada Centos 7 dan Python 3.6, perintahnya adalahsudo yum install python36u-tkinter.x86_64
Rob Hall
8

Untuk pengguna windows, jalankan kembali penginstal. Pilih Ubah. Centang kotak untuk tcl / tk dan IDLE. Deskripsi untuk ini mengatakan "Menginstal tkinter"

kecil mungil
sumber
8

Di Ubuntu, awal 2018, tidak ada python3.6-tkdistribusi normal di ubuntu (xenial / 16.04), jadi meskipun Anda memiliki versi sebelumnya, python-tkini tidak akan berfungsi.

Solusi saya adalah menggunakan set semuanya 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

Dan sekarang matplotlib dapat ditemukan tkinter.

EDIT :

Saya hanya perlu 3,6 setelah semua, dan triknya adalah untuk:

sudo apt install tk-dev

dan kemudian membangun kembali python3.6, setelah tk-dev , misalnya:

./configure
make
make install
Josh.F
sumber
3
Perbarui: Sekarang ADA a python3.6-tk! sudo apt install python3.6-tkbekerja di sini :)
Luis
4

Jika Anda menggunakan python 3.6, ini bekerja untuk saya:

sudo apt-get install python3.6-tk

dari pada

sudo apt-get install python3-tk

Yang berfungsi untuk versi lain dari python3

bertucho
sumber
4
Saya tidak punya paket python3.6-tk di ubuntu 16.04.
Brooks
@brooks, sama di sini
Url Gratis
Juga tidak ada di Centos
Rob Hall
Itu harus tersedia sekarang di ubuntu 16.04
Yu-Lin Chen
3

Untuk orang miskin seperti saya menggunakan python 3.7 . Anda membutuhkan python3.7-tkpaket.

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

Catatan. python3-tkdiinstal. Tapi tidak 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) ...

Setelah menginstalnya, semuanya baik-baik saja.

$ 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()
Pedro Rodrigues
sumber
2

Pada CentOS 6.5 dengan python 2.7 yang perlu saya lakukan: yum install python27-tkinter

pengguna1747134
sumber
1
Saya mendapatkan "Tidak ada paket python27-tkinter yang tersedia."
proutray
2

Terkadang (misalnya dalam distribusi osgeo4w) tkinter dihapus.

Coba ubah matplotlib backend mengedit file matplotlibrc yang terletak di [python install dir]/matplotlib/mpl-data/matplotlibrcmengubah Parameter backend dari backend: TkAggsesuatu yang lain seperti yang backend: Qt4Aggdijelaskan di sini: http://matplotlib.org/faq/usage_faq.html#what-is-a-backend

Enrico Ferreguti
sumber
1

Karena saya menggunakan Python 3.7 di Ubuntu saya harus menggunakan:

sudo apt-get install python3.7-tk
John
sumber
0

Mungkin Anda menginstal python dari sumber. Dalam hal ini, Anda dapat mengkompilasi ulang python dengan tcl / tk yang didukung.

  1. Complie dan instal tcl / tk dari http://www.tcl.tk/software/tcltk/download.html , saya kira Anda menginstal python di /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. Kompilasi ulang python dengan tcl / tk didukung, misalnya:
# 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
qi yuan
sumber