ошибка matplotlib - нет модуля с именем tkinter
Я попытался использовать пакет 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" - ни один из них не работал (оба вернули сообщение об ошибке, о котором я упоминал).
какие идеи?
спасибо заранее
13 ответов:
sudo apt-get install python3-tkзатем,
>> import tkinter # all fineEdit:
для Windows, я думаю, проблема в том, что вы не установили полный пакет Python. Поскольку Tkinter должен поставляться с Python из коробки. Смотрите: http://www.tkdocs.com/tutorial/install.html
Я предлагаю установить ipython, который обеспечивает мощную оболочку и необходимые пакеты.
на Centos имена пакетов и команды различны. Вам нужно будет сделать:
sudo yum install tkinterчтобы устранить проблему.
можно использовать
import matplotlib matplotlib.use('agg') import matplotlib.pyplot as pltесли вы не хотите использовать
tkinterна всех.также не забудьте использовать
%matplotlib inlineв верхней части вашего ноутбука, если он используется.EDIT:
agg- это другой бэкенд какtkinterдля matplotlib.
Если вы используете fedora, то сначала установите tkinter
sudo dnf install python3-tkinterЯ не думаю, что вам нужно импорт tkinter потом Я также предлагаю вам использовать virtualenv
$ python3 -m venv myvenv $ source myvenv/bin/activateи добавить необходимые пакеты с помощью pip
почти все ответы, которые я искал по этой проблеме, говорят, что Python на Windows поставляется с уже установленными tkinter и tcl, и мне не удалось загрузить или установить их с помощью pip, или actviestate.com сайт. В конце концов я обнаружил, что когда я устанавливал python с помощью двоичного установщика, я снял флажок с модуля, связанного с TCL и tkinter. Итак, я снова запустил двоичный установщик и решил изменить свою версию python к этому времени, выбрав эту опцию. Не нужно ничего делать вручную затем. Если вы перейдете на свой терминал python, то следующие команды должны показать вам версию tkinter, установленную с вашим Python:
import tkinter import _tkinter tkinter._test()
на CentOS 7 и Python 3.4, команда
sudo yum install python34-tkinterна Redhat 7.4 с Python 3.6, команда
sudo yum install rh-python36-python-tkinter
на Ubuntu, в начале 2018 года, нет
python3.6-tkна ubuntu (xenial/16.04) нормальные дистрибутивы, так что даже если у вас есть более ранние версииpython-tkэто не будет работать.мое решение было использовать set everything up with
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.EDIT:
мне просто нужно было 3.6 В конце концов, и трюк был:
sudo apt install tk-devа затем перестроить python3. 6,после
tk-dev, например:./configure make make install
для пользователей windows повторно запустите программу установки. Выберите Изменить. Установите флажок для tcl / tk и простоя. Описание для этого говорит "устанавливает tkinter"
Если вы используете python 3.6, это сработало для меня:
sudo apt-get install python3.6-tkвместо
sudo apt-get install python3-tkкоторый работает для других версий python3
иногда (например, в дистрибутиве osgeo4w) Tkinter удаляется.
попробуйте изменить matplotlib backend editing matplotlibrc расположенном в
[python install dir]/matplotlib/mpl-data/matplotlibrcизменение backend
на Windows пользователи, Нет необходимости загружать установщик снова. Просто сделайте следующее:
- перейдите в меню Пуск, введите программы и компоненты,
- выберите версию Python (для меня это Python 3.6.5 (64-бит)),
- правой кнопкой мыши, нажмите клавишу изменить,
- клик изменить,
- выберите td / tk и простоя (который устанавливает tkinter) и нажмите кнопку далее.
подождите установки, и вы сделали.
Так как я использую Python 3.7 на Ubuntu я должен был использовать:
sudo apt-get install python3.7-tk
Comments