Tkinter: «Python не может быть настроен для Tk» - PullRequest
62 голосов
/ 28 марта 2011

Сегодня я хотел начать работать с 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?

Ответы [ 13 ]

66 голосов
/ 28 апреля 2016

Под Arch / Manjaro просто установите пакет tk:

sudo pacman -S tk
42 голосов
/ 28 марта 2011

Установите tk-devel (или пакет с аналогичным именем) перед сборкой Python.

26 голосов
/ 28 марта 2011

Согласно http://wiki.python.org/moin/TkInter:

Если произойдет сбой с «Нет модуля с именем _tkinter», необходимо изменить конфигурацию Python, чтобы включить этот модуль (который реализован как модуль расширения).в с). не редактируйте модули / настройки (устарело).Возможно, вам придется установить Tcl и Tk (при использовании RPM также установите RPM -devel) и / или отредактируйте сценарий setup.py, чтобы он указывал на правильные места, где установлен Tcl / Tk.Если вы устанавливаете Tcl / Tk в каталогах по умолчанию, просто перезапустите «make», чтобы создать расширение _tkinter.

13 голосов
/ 10 августа 2017

Чтобы заставить это работать с pyenv в Ubuntu 16.04, мне пришлось:

$ sudo apt-get install python-tk python3-tk tk-dev

Затем установите нужную мне версию Python:

$ pyenv install 3.6.2

Тогда я мог бы просто отлично импортировать tkinter:

import tkinter
3 голосов
/ 12 января 2016

Была такая же проблема на Fedora с Python 2.7.Оказывается, требуются дополнительные пакеты:

sudo dnf install tk-devel tkinter

После установки пакетов этот пример hello-world , кажется, работает нормально на 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 through X11

Обратите внимание, что в Python 3 имя модуля является строчным, и, вероятно, требуются другие пакеты...

from tkinter import *
2 голосов
/ 08 сентября 2017

Я столкнулся с этой проблемой на 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 из исходного кода

1 голос
/ 22 мая 2018

Любой, кто использует Windows и Windows Subsystem для Linux, должен убедиться, что при запуске команды python из командной строки случайно не запускается установка python из WSL! Это дало мне головную боль только сейчас. Быстрая проверка, которую вы можете сделать, это всего лишь
which <python command you're using>
Если это напечатает что-то вроде /usr/bin/python2, даже если вы в PowerShell, это, вероятно, то, что происходит.

1 голос
/ 23 июля 2017
sudo apt-get install python3-tk
1 голос
/ 22 июня 2017

О, я просто следовал решению, предложенному Игнасио Васкесом-Абрамсом, которое устанавливает 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

Вот и все!

0 голосов
/ 06 февраля 2019

Вам нужно для установки tkinter для python3.

На Fedora pip3 install tkinter --user возвращает Could not find a version that satisfies the requirement ... поэтому мне нужно команда : dnf install python3-tkinter,Это решило мою проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...