Tkinter: "Python не может быть настроен для Tk"
Сегодня я хотел начать работать с Tkinter, но у меня есть некоторые проблемы.
Python 3.2 (r32:88445, Mar 28 2011, 04:14:07)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from tkinter import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.2/tkinter/__init__.py", line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter
Итак, как мне настроить Python 3.2 для работы с Tkinter?
Ответы
Ответ 1
Согласно http://wiki.python.org/moin/TkInter:
Если он не работает с "Нет модуля с именем _tkinter", ваша конфигурация Python должна быть изменена для включения этого модуля (который является модулем расширения, реализованным на C). не редактировать модули/настройки (устаревшие). Возможно, вам придется установить Tcl и Tk (при использовании RPM, также установить RPM -devel) и/или отредактировать setup.py script, чтобы указать на нужные места, где установлен Tcl/Tk. Если вы устанавливаете Tcl/Tk в местоположения по умолчанию, просто перезапуск "make" должен построить расширение _tkinter.
Ответ 2
В Arch/Manjaro просто установите пакет tk
:
sudo pacman -S tk
Ответ 3
Установите tk-devel
(или пакет с похожим именем) перед созданием Python.
Ответ 4
Чтобы заставить это работать с pyenv
в Ubuntu 16.04 и 18.04, мне нужно было:
$ sudo apt-get install python-tk python3-tk tk-dev
Затем установите нужную мне версию Python:
$ pyenv install 3.6.2
Тогда я мог бы просто отлично импортировать tkinter:
import tkinter
Ответ 5
Имел ту же проблему с Fedora с Python 2.7. Оказывается, требуются дополнительные пакеты:
sudo dnf install tk-devel tkinter
После установки пакетов этот привет-мир, похоже, отлично работает на Python 2.7:
$ cat hello.py
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
$ python --version
Python 2.7.8
$ python hello.py
И через пересылку X11 это выглядит так:
![Hello World через X11]()
Обратите внимание, что в Python 3 имя модуля имеет строчные значения, и, возможно, необходимы другие пакеты...
from tkinter import *
Ответ 6
Я столкнулся с этой проблемой на Python 2.7.9.
Чтобы это исправить, я установил tk и tcl, а затем перестроил код на python и переустановил, а во время настройки я явно установил путь для tk и tcl:
./configure --with-tcltk-includes="-I/usr/include" --with-tcltk-libs="-L/usr/lib64 -ltcl8.5 -L/usr/lib64 -ltk8.5"
Также, целая статья о процессе установки Python: Сборка Python из Source
Ответ 7
О, я только что последовал за решением, которое Игнасио Васкес-Абрамс предлагает, чтобы установить tk-dev перед созданием python.
(Построение Python-3.6.1 из источника на Ubuntu 16.04.)
Были предварительно скомпилированные объекты и двоичные файлы, которые у меня были вчера, но я не очищал объекты и просто строил их снова на одном пути сборки. И это прекрасно работает.
sudo apt install tk-dev
(On the python build path)
(No need to conduct 'make clean')
./configure
make
sudo make install
Что это!
Ответ 8
sudo apt-get install python3-tk
Ответ 9
Любой, кто использует Windows и Windows Subsystem для Linux, должен убедиться, что при запуске команды python из командной строки он не случайно запускает установку python из WSL! Это дало мне головную боль только сейчас. Быстрая проверка, которую вы можете сделать, это просто
which <python command you're using>
Если это напечатает что-то вроде /usr/bin/python2
даже если вы в PowerShell, это, вероятно, то, что происходит.
Ответ 10
Я думаю, что наиболее полным ответом на этот вопрос является принятый ответ, найденный здесь:
Как заставить tkinter работать с Ubuntu по умолчанию Python 2.7 установить?
Я понял это после слишком много времени, потраченного на эту проблему, поэтому надеюсь, я смогу спасти кого-то еще от хлопот.
Я обнаружил, что этот старый отчет об ошибке был признан недействительным, проблема у меня была, у меня был Tkinter.py, но он не смог найти модуль _tkinter: http://bugs.python.org/issue8555
Я установил пакет tk-dev с apt-get и перестроил Python, используя .configure, make и make install в каталоге Python2.7.3. А также теперь мой Python2.7 может импортировать Tkinter, yay!
Я немного удивлен, что пакет tk-dev вообще не упоминается в документация по установке Python.... ниже - еще одна полезная ресурс по отсутствующим модулям на Python, если, как и я, кто-то должен обнаружите, что они пропали больше, чем _tkinter.
Ответ 11
Этот симптом также может возникать, когда более поздняя версия python (например, 2.7.13) была установлена в/usr/local/bin "наряду с" версией релиза python ", а затем последующим обновлением операционной системы (скажем, Ubuntu 12.04 → Ubuntu 14.04) не удаляет обновленный питон там.
Чтобы исправить эту несовместимость, нужно
a) удалите обновленную версию python в /usr/local/bin;
b) удалить python-idle2.7; и
c) переустановите python-idle2.7.
Ответ 12
Если вы работаете с экземпляром AWS под управлением ОС Amazon Linux, волшебная команда, которая исправила это для меня, была
sudo yum install tkinter
Если вы хотите определить вашу сборку Linux, попробуйте cat/etc/*release
Ответ 13
Вам нужно установить tkinter для python3.
В Fedora pip3 install tkinter --user
возвращает Could not find a version that satisfies the requirement
... поэтому я должен dnf install python3-tkinter
команду: dnf install python3-tkinter
. Это решило мою проблему