Ошибка matplotlib - нет модуля с именем tkinter
Я попытался использовать пакет matplotlib через Pycharm IDE на Windows 10. когда я запускаю этот код:
from matplotlib import pyplot
Я получаю следующую ошибку:
ImportError: No module named 'tkinter'
Я знаю, что в python 2.x он назывался Tkinter, но это не проблема - я только что установил новый python 3.5.1.
РЕДАКТИРОВАТЬ: кроме того, я также попытался импортировать 'tkinter' и 'Tkinter' - ни один из них не сработал (оба вернули сообщение об ошибке, которое я упомянул).
Ответы
Ответ 1
sudo apt-get install python3-tk
Затем
>> import tkinter # all fine
Edit
Для Windows, я думаю, проблема в том, что вы не установили полный пакет Python. Так как Tkinter должен быть отправлен с Python из коробки. См.: http://www.tkdocs.com/tutorial/install.html
Я предлагаю установить ipython, который также предоставляет мощные оболочки и необходимые пакеты.
Ответ 2
ты можешь использовать
import matplotlib
matplotlib.use('agg')
import matplotlib.pyplot as plt
если вы вообще не хотите использовать tkinter
.
Также не забудьте использовать %matplotlib inline
в верхней части вашего ноутбука, если вы его используете.
РЕДАКТИРОВАТЬ: agg
это другой бэкэнд, как tkinter
для matplotlib.
Ответ 3
В Centos имена и команды пакетов различны. Вам нужно будет сделать:
sudo yum install tkinter
Чтобы устранить проблему.
Ответ 4
Если вы используете fedora, сначала установите tkinter
sudo dnf install python3-tkinter
Я не думаю, что вам нужно импортировать tkinter впоследствии
Я также предлагаю вам использовать virtualenv
$ python3 -m venv myvenv
$ source myvenv/bin/activate
И добавьте необходимые пакеты с помощью pip
Ответ 5
Почти все ответы, которые я искал по этой проблеме, говорят о том, что Python в Windows поставляется с уже установленными tkinter и tcl, и мне не повезло, пытаясь загрузить или установить их с помощью pip или сайта actviestate.com. В конце концов я обнаружил, что когда я устанавливал python с помощью бинарного установщика, я снял флажок с модуля, связанного с TCL и tkinter. Итак, я снова запустил бинарный установщик и решил изменить версию Python, выбрав эту опцию. Тогда не нужно ничего делать вручную. Если вы зайдете в свой терминал Python, то следующие команды должны показать вам версию tkinter, установленную с вашим Python:
import tkinter
import _tkinter
tkinter._test()
Ответ 6
В CentOS 7 и Python 3.4 команда sudo yum install python34-tkinter
В Redhat 7.4 с Python 3.6 команда выглядит так: sudo yum install rh-python36-python-tkinter
Ответ 7
В Ubuntu, в начале 2018 года, в нормальных дистрибутивах 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
Ответ 8
Для пользователей Windows запустите программу установки. Выберите "Изменить". Установите флажок для tcl/tk и IDLE. В описании для этого говорится: "Устанавливает tkinter"
Ответ 9
Если вы используете python 3.6, это сработало для меня:
sudo apt-get install python3.6-tk
вместо
sudo apt-get install python3-tk
Что работает для других версий python3
Ответ 10
Для пользователей Windows нет необходимости снова загружать установщик. Просто сделайте следующее:
- Зайдите в меню "Пуск", введите " Программы и компоненты",
- Выберите версию Python (для меня это Python 3.6.5 (64-разрядная версия )),
- Щелкните правой кнопкой мыши, нажмите Изменить,
- Нажмите Изменить,
- Выберите td/tk и IDLE (который устанавливает tkinter) и нажмите " Далее".
Ждите установки, и все готово.
Ответ 11
В CentOS 6.5 с python 2.7 мне нужно было сделать: yum install python27-tkinter
Ответ 12
Иногда (например, в дистрибутиве osgeo4w) tkinter удаляется.
Попробуйте изменить файл matplotlibrc для архивации matplotlib, расположенный в [python install dir]/matplotlib/mpl-data/matplotlibrc
, изменив параметр backend из backend: TkAgg
на что-то другое, подобное backend: Qt4Agg
, как описано здесь: http://matplotlib.org/faq/usage_faq.html#what-is-a-backend
Ответ 13
Поскольку я использую Python 3.7 в Ubuntu, мне пришлось использовать:
sudo apt-get install python3.7-tk
Ответ 14
Может быть, вы установили Python из источника. В этом случае вы можете перекомпилировать python с поддержкой tcl/tk.
- Завершите и установите 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
- Перекомпилируйте 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