Невозможно импортировать tkinter после установки Python 3 с помощью pyenv
У меня проблемы с импортом tkinter
после установки Python версии 3.4.2 с pyenv
, Моя система Python - это версия 2.7.6. Я использую Ubuntu 14.04. Для следующего примера сценария t.py
:
import _tkinter
print ("Hello")
Я получил:
$ pyenv global system
$ python --version
Python 2.7.6
$ python t.py
Hello
$ pyenv global 3.4.2
$ python --version
Python 3.4.2
$ python t.py
Traceback (most recent call last):
File "t.py", line 3, in <module>
import _tkinter
ImportError: No module named '_tkinter'
Traceback (most recent call last):
File "t.py", line 3, in <module>
import _tkinter
ImportError: No module named '_tkinter'
Обратите внимание, что pyenv
установлен Python версии 3.4.2 в ~/.pyenv/versions/3.4.2/
,
2 ответа
Эта проблема, кажется, теперь решена с использованием подхода, описанного в этом посте:
- Сначала удалите Python 3.4.2:
pyenv uninstall 3.4.2
, затем - Бежать
sudo apt-get install tk-dev
- И переустановите Python 3.4.2:
pyenv install 3.4.2
Для MacOS вы можете попробовать установить tcl-tk
через homebrew, а затем активировав env. вары. упоминается в разделе предостережений, как подробно описано в этом ответе.
Измените свой код на:
import tkinter
Ссылка на документацию:
В большинстве случаев tkinter - это все, что вам действительно нужно, но также доступен ряд дополнительных модулей. Интерфейс Tk находится в двоичном модуле с именем _tkinter. Этот модуль содержит низкоуровневый интерфейс к Tk и никогда не должен использоваться непосредственно программистами приложений. Обычно это общая библиотека (или DLL), но в некоторых случаях она может быть статически связана с интерпретатором Python.