Невозможно импортировать 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.

Другие вопросы по тегам