Пытаюсь использовать tkinterdnd, но не могу загрузить библиотеку tkinter в Python

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

File "/Users/USER/Documents/GitHub/RegExorcist/regexorcist.py", line 92, in <module>
    window = TkinterDnD.Tk()
             ^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.12/site-packages/tkinterdnd2/TkinterDnD.py", line 285, in __init__
    self.TkdndVersion = _require(self)
                        ^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.12/site-packages/tkinterdnd2/TkinterDnD.py", line 55, in _require
    raise RuntimeError('Unable to load tkdnd library.')
RuntimeError: Unable to load tkdnd library.

Вот что я добавил в свой код:

from tkinterdnd2 import TkinterDnD, DND_FILES

# GUI
window = TkinterDnD.Tk()
window.title('RegExorcist')

# Bind drag-and-drop events
window.drop_target_register(DND_FILES)
window.dnd_bind('<<Drop>>', on_drop)
window.dnd_bind('<<DragEnter>>', on_drag_enter)

Я установил tkinter, tkinterdnd, tkinterdnd2.

Как заставить код работать и убрать ошибку?


Дополнительная информация:

Я на VC Code. У меня есть Python 3.12.3/opt/homebrew/bin/python3, Python 3.12.3/usr/local/bin/python3 и один Python 3.9.6/usr/bin/python3. Я использую для этого первый. Когда я использую второй, tkinterdnd становится желтым.

Именно по этой причине я всегда воздерживаюсь от использования Stackoverflow. На Reddit я могу просто создать публикацию за 2 минуты, не боясь потерять прогресс, потому что тупой ИИ этого сайта не примет публикацию. Я единственный, кто испытывает это?

Ares 20.05.2024 20:38

Вы случайно не запускаете свой проект в виртуальной среде? Или, возможно, у вас установлено более одного интерпретатора Python (что довольно часто встречается на Mac).

JRiggles 20.05.2024 20:46

Я на VC Code. У меня есть Python 3.12.3/opt/homebrew/bin/python3, Python 3.12.3/usr/local/bin/python3 и один Python 3.9.6/usr/bin/python3. Я использую для этого первый. Когда я использую второй, tkinterdnd становится желтым.

Ares 20.05.2024 20:52

Особая благодарность TheLizzard за то, что удалили мои напыщенные речи об этой платформе. Я не против, по крайней мере, я смог это опубликовать.

Ares 20.05.2024 21:30

Попробуйте установить tkinterdnd2-universal вместо tkinterdnd2.

acw1668 21.05.2024 02:44

Спасибо @acw1668, кто-то опередил вас на Reddit, но для всех, у кого возникла эта проблема, вот и все.

Ares 21.05.2024 18:41
Почему в 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 может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
6
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Я установил tkinterdnd2-universal вместо tkinterdnd2, и это устранило проблему.

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