Как заставить tkinter работать с установленной по умолчанию Ubuntu Python 2.7?
Я использую Ubuntu 11.10, который был предустановлен с Python 2.7.3.
Я установил пакет python3 и пакет python3-tk через apt-get install, и они работали вместе "из коробки".
Но хотя я установил пакет python-tk, я не могу понять, как получить Python2.7, чтобы увидеть его. Я получаю сообщение об ошибке ниже, когда я пытаюсь импортировать его.
import Tkinter
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/lib-tk/Tkinter.py", line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter
edit: я также запустил следующее на основе пакета Python-tk, не распознаваемого в Python 2.7.3, и получил:
$ file /usr/lib/libtk8.5.so.0
/usr/lib/libtk8.5.so.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
$ uname -a
Linux bugbot 3.0.0-23-generic-pae #39-Ubuntu SMP Thu Jul 19 19:39:19 UTC 2012 i686 i686 i386 GNU/Linux
3 ответа
Я понял это после того, как потратил слишком много времени на эту проблему, так что, надеюсь, я смогу спасти кого-то еще.
Я обнаружил, что это старое сообщение об ошибке, считающееся недействительным, в котором упоминалась точная проблема, с которой я столкнулся, у меня был Tkinter.py, но он не смог найти модуль _tkinter: http://bugs.python.org/issue8555
Я установил пакет tk-dev с помощью apt-get и перестроил Python, используя./configure, make и make install в каталоге Python2.7.3. И теперь мой Python2.7 может импортировать Tkinter, ура!
Я немного раздражен, что пакет tk-dev вообще не упоминается в документации по установке Python... ниже приведен еще один полезный ресурс по отсутствующим модулям в Python, если, как и я, кто-то должен обнаружить, что им не хватает более _tkinter.
У меня была такая же проблема с python3.4 (ImportError: нет модуля с именем _tkinter)
sudo apt-get install tk-dev
попал в исходный каталог Python
./configure
make
sudo make install
Следующее решило проблему для меня на Linux Mint 16:
sudo apt-get install tk-dev python-tk
Я использую virtualenv, но не хотел компилировать python, чтобы сделать поддержку python tk, необходимо установить python-tk.