ImportError: без имени '_tkinter', пожалуйста, установите пакет python3-tk

28

Я новичок в Ubuntu и Linux в целом.

Я создал операционную систему с двойной загрузкой на своем ноутбуке (Windows 10 и Ubuntu).

  • Печатание: sudo apt-get install python3-tk(или даже python-tk) не сработало.
  • Попытка установить python3-devили python-devel(не повезло).
  • Загрузка Tcl и Tk для ручной установки.

В подсистеме Bash Windows 10 Tk и Tcl уже включены, поэтому я подумал, что в Ubuntu они уже есть. Но я хочу использовать свой рабочий стол Ubuntu для разработки приложений Python GUI.

Итак, как я могу установить Tcl / Tk для использования в Python 3.5 для разработки GUI?

Я загрузил Python 3.5.2 нормально, но мне нужны модули с графическим интерфейсом.

Код для проверки работоспособности Tk:

  1. Тип python3
  2. Тип:

    import tkinter   
    tkinter._test()
  3. Результат: всплывающее окно с графическим интерфейсом This is a Tcl/Tk version..

MaximoTrinidad
источник
3
«Я загрузил Python 3.5.2» - как именно? если вы используете вручную установленный python, то установка системных пакетов python с помощью apt-get вряд ли поможет
steeldriver
1
Я видел, что ваш ответ на ваш собственный вопрос состоит в том, чтобы скомпилировать Tcl / Tk из исходного кода, но я не думаю, что это необходимо, если вы не установили Python вручную, т.е. без использования менеджера пакетов Apt. Можете ли вы уточнить, если вы установили Python вручную? Установка python3-tkи последующий запуск предоставленного вами кода Python работает на моей системе Python 3.
edwinksl

Ответы:

30

sudo apt-get install python3-tkУстановки tkinterдля Python3.xx

Источники:

https://stackoverflow.com/questions/6084416/tkinter-module-not-found-on-ubuntu https://pythonprogramming.net/python-3-tkinter-basics-tutorial/

Старейшина Гик
источник
6
Примечание - для python3.6, в котором python3.5 был моим стандартным, мне пришлось использовать ... установить python3.6-tk ....
SteveJ
+1. Я хотел бы добавить для тех, кто читает это, что tkinter, похоже, не имеет пакета PyPI, так что использование диспетчера пакетов Ubuntu, как предлагается в этом ответе, является, вероятно, следующим лучшим вариантом.
апреля
1
@dpritch В репозитории Universe есть пакет, называемый [pypibrowser] ( packages.ubuntu.com/…), который предоставляет функциональность, которую, я полагаю, вы ищете. Приветствия!
Старейшина Гик
python3-tkinterдля меня на федоре dnfкак минимум.
Пизис
@Pysis, я извиняюсь за любую путаницу, которую Вы, возможно, испытали. Этот ответ, как и весь этот сайт, посвящен Ubuntu. Вы могли бы извлечь выгоду из тура. Первое предложение проясняет это, если нет, дальнейшая ясность доступна здесь. Ура!
Старейшина Гик
26

Для виртуальной среды Python 3.6 с Python 3.5 в качестве «системного» Python (Ubuntu) мне пришлось установить tk 3.6 для соответствия;

sudo apt-get install python3.6-tk

Мой стандартный питон в Ubuntu был 3.5, поэтому при использовании venv для 3.6 я получаю ошибку импорта. Некоторое время сводил меня с ума.

[Редактировать: как этот вопрос стареет]

В общем, кажется, что если вы используете виртуальную среду с питоном, отличным от версии базовой машины, необходимо установить tk для версии питона, используемой в виртуальной среде.

sudo apt install python3.x-tk

Где 3.x будет соответствовать версии виртуальной среды.

[Редактировать]

Может быть необходимо добавить репозиторий для tk. По моему опыту, это был тот же репозиторий, из которого я вытащил python3.6, но со временем он может измениться;

sudo add-apt-repository ppa:deadsnakes/ppa
SteveJ
источник
1
Интересный. Вы можете пойти так далеко, чтобы объяснить, с какого PPA вы его установили, насколько я вижу, python3.6-tk не существует в репозиториях в данный момент.
Старейшина Гик,
1
Я сделал еще одно редактирование в попытке сделать его более актуальным.
Старейшина Компьютерщик
3
НУ НАКОНЕЦ ТО! Это работало для меня, когда sudo apt-get install python3-tkне сделал. Спасибо
Питер
2
Для Python 3.7 мне пришлось использовать, sudo apt-get install python3.7-tkчтобы он работал
илиас
Это было это. Единственное решение, которое сработало для меня на двенадцати страницах Stackoverflow.
Авио
0

Это может быть интересно при установке из исходных текстов (чего не делает большинство пользователей Python):

После установки ткл и тк .

Вернитесь к своей версии Python, сделайте make. И, если существует несколько версий python, сделайте make altinstall.

  1. Откройте Python3.5
  2. тип:

    import tkinter
    tkinter._test()
  3. Результаты в порядке - графический интерфейс пользователя открыт и работает, как и ожидалось.

MaximoTrinidad
источник
2
-1 Это не будет актуально для большинства людей, так как большинство будет устанавливать через менеджер пакетов, а не из исходного кода.
RockJake28
добавлено введение, чтобы оно не смутило и могло бы помочь кому-то
мит
0

В моем случае я получал ту же ошибку, что и «ImportError: нет модуля с именем _tkinter» для python3.5, несмотря на следующие действия: - установка python3-tk и tkinter-dev - каталог Tkinter доступен в / USR / Lib / python3.5.

Наблюдаемая ошибка была из следующего файла:

Файл "/usr/local/lib/python3.5/tkinter/ init .py", строка 35, в import _tkinter # Если это не удается, возможно, ваш Python не настроен для Tk

Однако, когда я просто запустил питон из / usr / bin, как /usr/bin/python3.5 из терминала, он работал для меня!

Короче говоря, просто убедитесь, что версия python, запущенная из терминала, имеет установленный и настроенный tkinter :)

У меня установлена ​​Ubuntu16.04 в моей системе, которая поставляется по умолчанию с python2.7 и python3.5

Собор Каустуб
источник
0

Установка только библиотечных файлов может не работать, так как вы хотите использовать саму библиотеку, а не разрабатывать ее.

Это сработало для меня:

$ sudo apt install tk8.6-dev
ismailarilik
источник
хотя это может ответить на вопрос, возможно, вы могли бы расширить его, чтобы объяснить, что делает приведенная выше команда и почему она может решить проблему?
Иисус Навин
ismailarilik То, что @JoshuaBesneatte пытается сказать: не только давать запрашивающей стороне команды, но и объясняет, что команды делают, и почему он / она должен их применять. В
таком виде