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..


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

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. Результаты в порядке - графический интерфейс пользователя открыт и работает, как и ожидалось.


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 То, что @JoshuaBesneatte пытается сказать: не только давать запрашивающей стороне команды, но и объясняет, что команды делают, и почему он / она должен их применять. В
— таком виде
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.