błąd matplotlib - brak modułu o nazwie tkinter

195

Próbowałem użyć pakietu matplotlib za pośrednictwem Pycharm IDE w systemie Windows 10. po uruchomieniu tego kodu:

from matplotlib import pyplot

Otrzymuję następujący błąd:

ImportError: No module named 'tkinter'

Wiem, że w Pythonie 2.x nazywał się Tkinter, ale to nie jest problem - właśnie zainstalowałem zupełnie nowego pytona 3.5.1.

EDYCJA: ponadto próbowałem również zaimportować „tkinter” i „Tkinter” - żadne z nich nie działało (oba zwróciły wspomniany komunikat o błędzie).

noamgot
źródło
Czy importowałeś Tkintera przez import Tkinterlub import tkinter?
Avión
1
tak, zapomniałem wspomnieć, że ... dostałem ten sam komunikat o błędzie
noamgot
ImportError: No module named '_tkinter', please install the python3-tk package?
knh170
@ knh170 nie, po prostu wiadomość pokazana w moim oryginalnym poście.
noamgot,
4
wygląda na to, że użyłeś niestandardowej instalacji. Uruchom ponownie instalatora Pythona, naciśnij zmodyfikuj, a następnie zaznacz td / tk i IDLE
omilus

Odpowiedzi:

221
sudo apt-get install python3-tk

Następnie,

>> import tkinter # all fine

Edytuj :

Myślę, że w przypadku systemu Windows problem polega na tym, że nie zainstalowałeś pełnego pakietu Python. Ponieważ Tkinter powinien być wysyłany z Pythonem po wyjęciu z pudełka. Zobacz: http://www.tkdocs.com/tutorial/install.html

Proponuję zainstalować ipython , który zapewnia również potężną powłokę i niezbędne pakiety.

knh170
źródło
TO DZIAŁA! dzięki! (Zainstalowałem anakondę za pomocą linku, który umieściłeś w swoim poście)
noamgot
3
jeśli jesteś na polu CentOS, polecenie brzmisudo yum install python36u-tkinter.x86_64
n1c9
Używam pycharm i dostałem ten sam błąd dotyczący braku pakietu. Po zainstalowaniu pakietu tkinter matplotlib działał dobrze. Dziękuję @ knh170
debaonline4u
Pracowałem dla mnie z Ubuntu 18.04, używając Pythona w Venv. Po prostu zainstaluj: sudo apt-get install python3-tk Następnie możesz przetestować z powłoki python3: z importu matplotlib pyplot
serfer2
1
@ knh170 Czy możemy zainstalować Tkintera za pomocą pip? Nie mogę przeszukiwać niczego z tym związanego
Scott Yang,
99

możesz użyć

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

jeśli w ogóle nie chcesz używać tkinter.

Nie zapomnij również użyć %matplotlib inlinena górze notebooka, jeśli go używasz.

EDYCJA: aggjest innym tkinterbackendem jak dla matplotlib.

markroxor
źródło
1
Jest to miłe, ponieważ ze względu na pracę z serwerem nie wymagam i mam X11, ale niektóre programy, które zainstalowałem, są zależne od matplotlib.
rien333
2
Fantastyczny! Jeśli ktoś zastanawia się, jak to działa
Matt
2
to rozwiązanie nie działa, jeśli chcesz coś wykreślić
Beyhan Gül
4
Wystarczy dodać do tej odpowiedzi: aggjest backendem bez GUI, więc plt.show()nie przyniesie żadnego efektu. Ale nadal możesz to zrobić plt.savefig(filename)i spojrzeć na plik w celu szybkiego debugowania.
Nico,
1
Oszczędza mi czas od radzenia sobie z tym błędem tkintera.
annoying_squid
35

W Centos nazwy pakietów i polecenia są różne. Musisz zrobić:

sudo yum install tkinter

Naprawić problem.

razeh
źródło
29

Dla systemu Windows użytkowników, nie ma potrzeby, aby ponownie pobrać instalator. Po prostu wykonaj następujące czynności:

  1. Przejdź do menu Start, wpisz Programy i funkcje ,
  2. Wybierz wersję Python (dla mnie jest to Python 3.6.5 (64-bit) ),
  3. Kliknij prawym przyciskiem, naciśnij Zmień ,
  4. Kliknij Zmień ,
  5. Wybierz TD / tk i bezczynna (który instaluje Tkinter) i kliknij przycisk obok .

Poczekaj na instalację i gotowe.

gdrt
źródło
4
Dziękuję Ci. Jest to najbardziej przydatna i poprawna odpowiedź między innymi. (Oczywiście dla użytkowników systemu operacyjnego Windows)
Ruslan K.
20

Prawie wszystkie odpowiedzi, które szukałem tego problemu, mówią, że Python w systemie Windows jest już wyposażony w tkinter i tcl i nie miałem szczęścia, próbując je pobrać lub zainstalować za pomocą pipa lub strony actviestate.com. W końcu odkryłem, że kiedy instalowałem Pythona za pomocą binarnego instalatora, odznaczyłem moduł związany z TCL i tkinter. Ponownie uruchomiłem instalator binarny i zdecydowałem się zmodyfikować moją wersję Pythona, wybierając tę ​​opcję. Nie musisz wtedy nic robić ręcznie. Jeśli przejdziesz do terminala python, następujące polecenia powinny pokazać wersję tkinter zainstalowaną z twoim Pythonem:

import tkinter
import _tkinter
tkinter._test()
użytkownik58419
źródło
1
Poprawny. Instalacja systemu Windows jest jedynym systemem, w którym może się to zdarzyć - tak jak w moim przypadku. +1. Jest to z pewnością warte odnotowania dla użytkowników z instalacjami systemu Windows.
marcushobson,
18

Jeśli używasz fedory, najpierw zainstaluj tkinter

sudo dnf install python3-tkinter

Nie sądzę, że musisz później zaimportować tkinter. Sugeruję również korzystanie z virtualenv

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

I dodaj niezbędne pakiety za pomocą pip

mędrzec poudel
źródło
10

W CentOS 7 i Python 3.4 polecenie to sudo yum install python34-tkinter

W Redhat 7.4 z Python 3.6 polecenie to sudo yum install rh-python36-python-tkinter

Krzysztof Buchacz
źródło
3
W Centos 7 i Python 3.6 polecenie brzmisudo yum install python36u-tkinter.x86_64
Rob Hall
8

W przypadku użytkowników systemu Windows uruchom ponownie instalatora. Wybierz Zmień. Zaznacz pole wyboru dla tcl / tk i IDLE. Opis tego mówi „Instaluje tkinter”

petEEy
źródło
8

W Ubuntu na początku 2018 r. Nie ma python3.6-tknormalnych dystrybucji ubuntu (xenial / 16.04), więc nawet jeśli masz wcześniejsze wersje python-tktego nie będzie działać.

Moim rozwiązaniem było użycie konfiguracji z 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

I teraz matplotlibmożna znaleźć tkinter.

EDYCJA :

Potrzebowałem tylko 3.6, a sztuczka polegała na:

sudo apt install tk-dev

a następnie odbuduj python3.6 po tk-dev , np .:

./configure
make
make install
Josh.F
źródło
3
UPDATE: Teraz JESTpython3.6-tk ! sudo apt install python3.6-tkpracuje tutaj :)
Luis
4

Jeśli używasz Pythona 3.6, działało to dla mnie:

sudo apt-get install python3.6-tk

zamiast

sudo apt-get install python3-tk

Który działa dla innych wersji Python3

bertucho
źródło
4
Nie mam pakietu python3.6-tk na Ubuntu 16.04.
Brooks
@ Brooks, to samo tutaj
Darmowy Url
Nie istniał również w Centos
Rob Hall
Powinien być dostępny na Ubuntu 16.04
Yu-Lin Chen
3

Dla biednych ludzi takich jak ja używających Pythona 3.7 . Potrzebujesz python3.7-tkpaczki.

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

Uwaga. python3-tkjest zainstalowane. Ale nie 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) ...

Po zainstalowaniu wszystko w porządku.

$ 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
źródło
2

Na CentOS 6.5 z Pythonem 2.7 musiałem: yum install python27-tkinter

użytkownik1747134
źródło
1
Otrzymuję komunikat „Brak dostępnego pakietu python27-tkinter”.
proutray
2

Czasami (na przykład w dystrybucji osgeo4w) tkinter jest usuwany.

Spróbuj zmienić plik matplotlib do edycji backendu plik matplotlibrc znajdujący się podczas [python install dir]/matplotlib/mpl-data/matplotlibrczmiany parametru backendubackend: TkAgg na inny, jak backend: Qt4Aggopisano tutaj: http://matplotlib.org/faq/usage_faq.html#what-is-a-backend

Enrico Ferreguti
źródło
1

Ponieważ używam Python 3.7 na Ubuntu, musiałem użyć:

sudo apt-get install python3.7-tk
Jan
źródło
0

Być może zainstalowałeś Pythona ze źródła. W takim przypadku możesz ponownie skompilować Pythona z obsługiwanym tcl / tk.

  1. Zainstaluj i zainstaluj tcl / tk z http://www.tcl.tk/software/tcltk/download.html , przypuszczam, że zainstalowałeś Pythona na /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. Przekompiluj python z obsługiwanym tcl / tk, na przykład:
# 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 juan
źródło
0

Miałem ten sam problem na Win x86 / 64, ponieważ moja niestandardowa instalacja w języku Python3.7 nie zawierała pakietów Tcl, więc po prostu zmodyfikuj lub zainstaluj ponownie język Python

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

wprowadź opis zdjęcia tutaj

AlexPes
źródło