При установке Tkinter каким-то образом устанавливается другой модуль

Я использую Linux Ubuntu 22.10.

Итак, я установил Tkinter с помощью этой команды:

python3 -m pip install tk

и вывод был в порядке:

Defaulting to user installation because normal site-packages is not writeable
Collecting tk
  Using cached tk-0.1.0-py3-none-any.whl.metadata (693 bytes)
Using cached tk-0.1.0-py3-none-any.whl (3.9 kB)
Installing collected packages: tk
Successfully installed tk-0.1.0

поэтому я попытался использовать модуль; Я написал базовый файл для отображения окна:

import tk
window = tk.Tk()
window.mainloop()

а потом мне выдали эту ошибку: AttributeError: module 'tk' has no attribute 'Tk'.

хах, странно. Я проверил, какие функции есть у модуля, и, судя по всему, не что иное, как __init__, который пуст!

Как это исправить?

Обновлено: информация может быть изменена. Этот вопрос — крушение поезда.

Что вам нужно объяснить?

Scott Hunter 01.07.2024 17:39

Ох, видимо я дал слишком много информации. Я спрашиваю, почему файл инициализации пуст и как это исправить.

Dw8ke 01.07.2024 17:46

То, что __init__.py пусто, вполне нормально. Есть ли у вас основания полагать, что в нем что-то должно быть?

tripleee 01.07.2024 17:50
т.к. - это не tkinter, который на самом деле включен в стандартную библиотеку Python, и поэтому его не нужно устанавливать отдельно.
tripleee 01.07.2024 17:56

Я действительно пытался использовать import tkinter, но он сказал, что модуль не найден. P.S. простите за глупость, но быть пустым - это нормально? Некоторое время назад я обнаружил ошибку внутри модуля, и он сказал, что ошибка возникла из-за функции в init, поэтому я предположил, что именно здесь и происходит вся магия.

Dw8ke 01.07.2024 18:16

Давайте перепишем вопрос примерно так: "почему нет других файлов"

Dw8ke 01.07.2024 18:19

Возможный дубликат: stackoverflow.com/questions/4783810/install-tkinter-for-pyth‌​на (это объясняет, почему tkinter отсутствует в Ubuntu и как его правильно установить).

tripleee 01.07.2024 18:26

Как уже упоминалось, tkinter входит в стандартную библиотеку, так зачем искать файлы в site-пакетах?

OneCricketeer 01.07.2024 18:26

Метод __init__ отличается от файла __init__.py, который должен существовать, но часто не должен ничего содержать, чтобы каталог был действительным (не относящимся к пространству имен) пакетом Python. Возможно, см. также stackoverflow.com/questions/448271/what-is-init-py-for

tripleee 01.07.2024 18:28

Почему-то кажется, что это не так. Когда я пытаюсь его импортировать, он почему-то не существует. Может быть связано с stackoverflow.com/questions/76105218/….

Dw8ke 01.07.2024 18:28

@triplee Ой, подожди, это другое? Ах, окей.

Dw8ke 01.07.2024 18:31

Использование apt-get для установки tkinter почему-то не работает на моей машине. В нем говорится, что некоторые пакеты не найдены, но и apt-get update их не находит.

Dw8ke 01.07.2024 18:32

Как только вы доберетесь туда, источник станет не таким уж интересным. Tkinter на самом деле представляет собой набор скриптов, написанных на языке tcl. Код Python просто запускает внутренний интерпретатор tcl и создает командные строки для выполнения tcl.

Tim Roberts 02.07.2024 01:00
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
13
99
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пакет, который вы установили, называется тк и он совершенно не связан с tkinter (хотя похожие названия неудачны); это пакет машинного обучения, также называемый TensorKit, который предоставляет несколько файлов в подкаталоге с именем structure (но на самом деле, как ни странно, в самом пакете tk ничего нет).

Для __init__.py вполне нормально быть пустым; этот файл является обязательным для пакета Python (не относящегося к пространству имен), но часто он вообще ничего не должен содержать. См. также Для чего нужен __init__.py?

Между тем, tkinter отсутствует на некоторых платформах по разным причинам. Чтобы установить tkinter в Ubuntu, apt-get install python3-tk. См. также Установите tkinter для Python.

Этот вопрос похож на крушение поезда, поэтому, возможно, будет лучше, если вы не проголосуете за этот ответ и не примете его, а позволите вопросу быть удаленным, когда придет время.

Для меня apt-get не работает. Он не может найти Tkinter. Я попробовал обновить apt-get, но это тоже не работает.

Dw8ke 01.07.2024 21:27

Вы использовали правильное имя пакета python3-tk? Какой результат apt-cache policy python3-tk? Вероятно, задайте новый вопрос в Спросите Ubuntu, если не можете разобраться.

tripleee 02.07.2024 02:43

да, я сделал. Я, вероятно, отмечу этот вопрос и задам вопрос в Ask Ubuntu.

Dw8ke 02.07.2024 03:04

Хорошо! Я починил это! Только что проверил это: Askubuntu.com/questions/1131280/… И это все исправило. Ура!

Dw8ke 02.07.2024 06:50

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