помилка 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.

EDIT: крім того, я також намагався імпортувати 'tkinter' та 'Tkinter' - жодне з них не працювало (обидва повернули повідомлення про помилку, яке я згадав).


Ви імпортували tkinter на import Tkinterабо import tkinter?
Авіон

1
так, забув згадати, що ... отримав те саме повідомлення про помилку
noamgot

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

@ knh170 ні, просто повідомлення, показане в моєму початковому дописі.
noamgot

4
схоже, що ви використовували власну установку. Перезапустіть програму встановлення python, натисніть змінити, а потім позначте 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 in venv. Просто встановіть це: sudo apt-get install python3-tk Тоді ви можете протестувати це з оболонки python3: з matplotlib import pyplot
serfer2

1
@ knh170 Чи можна встановити tkinter за допомогою pip? Я не можу шукати нічого, пов’язаного з цим
Скотт Ян

99

ви можете використовувати

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

якщо ви взагалі не хочете користуватися tkinter.

Також не забудьте використовувати %matplotlib inlineвгорі вашого ноутбука, якщо ви користуєтесь ним.

EDIT: aggце інший бекенд, як tkinterдля matplotlib.


1
Це приємно, оскільки через роботу з сервером мені не потрібен X11, але деякі встановлені мною програми мають залежність від matplotlib.
rien333

2
Фантастичний! Якщо хтось цікавиться, як це працює
Метт

2
це рішення не спрацьовує, якщо ви хочете щось
Бейхан Гюль

4
Просто додати до цієї відповіді: aggце негіпденський інтерфейс, plt.show()не матиме жодного ефекту. Але ви все одно можете зробити plt.savefig(filename)і подивитися файл для швидкої налагодження.
Ніко

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, звичайно)
Руслан К.

20

Майже всі відповіді, на які я шукав цю проблему, говорять про те, що Python в Windows постачається з уже встановленими tkinter і tcl, і мені не пощастило спробувати завантажити або встановити їх за допомогою pip або сайту actviestate.com. Зрештою я виявив, що коли я встановлював python за допомогою бінарного інсталятора, я скасував модуль, пов'язаний з TCL та tkinter. Отже, я знову запустив бінарний інсталятор і вирішив до цього часу змінити свою версію python, вибравши цю опцію. Тоді не потрібно нічого робити вручну. Якщо ви переходите до свого терміналу 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
Роб Хол

8

Для користувачів Windows перезапустіть інсталятор. Виберіть Змінити. Поставте прапорець на tcl / tk та IDLE. В описі цього сказано "Встановлення tkinter"


8

На Ubuntu, на початку 2018 року, немає 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

А тепер matplotlibможна знайти tkinter.

Редагувати :

Мені просто знадобилося 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

Він має бути доступний зараз на ubuntu 16.04
Yu-Lin Chen

3

Для бідних хлопців, як я, використовуючи 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()



1

Оскільки я використовую Python 3.7 в Ubuntu, мені довелося використовувати:

sudo apt-get install python3.7-tk

0

Можливо, ви встановили python з джерела. У цьому випадку ви можете перекомпілювати python із підтримкою tcl / tk.

  1. Створіть і встановіть tcl / tk з http://www.tcl.tk/software/tcltk/download.html , я вважаю, що ви встановили python у /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. Перекомпілюйте python з підтримкою 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.