Какие модули tkinter были переименованы в Python 3?

Я пытаюсь создать диалоговое окно выбора файлов. Тем не менее, когда я пытаюсь импортировать tkMessageBox в Python 3 я получаю сообщение об ошибке, утверждая, что модуль не существует.

import tkMessageBox
# ImportError: No module named 'tkMessageBox' 

Я получаю похожие ошибки при попытке импортировать другие модули Tkinter в Python 3.

import Tkinter          # No module named 'Tkinter'
import tkColorChooser   # No module named 'tkColorChooser'
import tkFileDialog     # No module named 'tkFileDialog'

Как импортировать модули Tkinter в Python 3? Каковы новые имена модулей?

2 ответа

Решение

Tkinter пакет из Python 2 был переименован в tkinter в Python 3, а также других связанных с ним модулей.

Вот список переименованных модулей:

  • Tkintertkinter
  • tkMessageBoxtkinter.messagebox
  • tkColorChoosertkinter.colorchooser
  • tkFileDialogtkinter.filedialog
  • tkCommonDialogtkinter.commondialog
  • tkSimpleDialogtkinter.simpledialog
  • tkFonttkinter.font
  • Tkdndtkinter.dnd
  • ScrolledTexttkinter.scrolledtext
  • Tixtkinter.tix
  • ttktkinter.ttk

Я советую вам научиться динамически просматривать модули с помощью dir команда. Если вы находитесь в Windows, настройте Python на использование модуля readline для автоматического завершения и упростите перечисление доступных классов в модуле.

Описание каждого модуля см. В официальной документации Python. (Tkinter в Python 2.x, tkinter в Python 3.x)

Быстрый скрипт для использования Tkinter / tkinter для Python 2. и Python 3. **

У меня был сценарий, в котором был другой импорт Python 2.* Tkinter, поэтому просматриваю, но я вижу, что все ответы разбросаны. Вот небольшое резюме с безопасным скриптом для использования обеих версий Python.

      try:  # Python 2.7
    import Tkinter as tk
    import tkColorChooser as color
    import tkCommonDialog as cdialog
    import Tkconstants as const
    import Tkdnd as dnd
    import tkFileDialog as fdialog
    import tkFont as font
    import tkMessageBox as msgbox
    import ScrolledText as stext
    import tkSimpleDialog as sdialog
    import Tix as tix
    import ttk

except ImportError:  # Python 3.* 
    import tkinter as tk
    from tkinter import (
        colorchooser as color,
        commondialog as cdialog,
        constants as const,
        dialog,
        dnd,
        filedialog as fdialog,
        font,
        messagebox as msgbox,
        scrolledtext as stext,
        simpledialog as sdialog,
        tix,
        ttk
    )

Список ошибок ModuleNotFoundError (при запуске Python 3.)

      ModuleNotFoundError: No module named 'Tkinter'
ModuleNotFoundError: No module named 'tkMessageBox'
ModuleNotFoundError: No module named 'ScrolledText'
ModuleNotFoundError: No module named 'tkFileDialog'
Другие вопросы по тегам