ImportError: nenhum módulo chamado 'Tkinter'

206

Por alguma razão, não posso usar o módulo Tkinterou tkinter. Depois de executar o seguinte comando no shell python

import Tkinter

ou

import tkinter

Eu recebi esse erro

ModuleNotFoundError: nenhum módulo chamado 'Tkinter'

ou

ModuleNotFoundError: nenhum módulo chamado 'tkinter'

Qual poderia ser o motivo e como podemos resolvê-lo?

RasmusGP
fonte
7
Instalá-lo não python vem com ele?
RasmusGP
Depende da versão que você está usando?
Zeb
O problema era que eu tinha a versão python errado instalado e não ter todos os módulos instalados todos fixos agora obrigado :)
RasmusGP
12
Por que esta pergunta está encerrada? Este é o primeiro tópico que surgiu quando pesquisei ModuleNotFoundError: No module named 'tkinter'e acho que o conteúdo aqui é relevante.
21818 ScottMcC
13
Hey Googler no Ubuntu! sudo apt-get install python3-tk ; Todo o crédito para o mago harrypotter0 abaixo, mas esse comentário está um pouco abaixo da dobra;)
Alquimista de dois bits

Respostas:

329

Você provavelmente precisará instalá-lo usando um dos seguintes itens (ou algo semelhante):

sudo apt-get install python3-tk 

sudo dnf install python3-tkinter

Estou usando o Tkinter há algum tempo. Por que você não tenta e me avisa se funcionou?

try:
    # for Python2
    from Tkinter import *   ## notice capitalized T in Tkinter 
except ImportError:
    # for Python3
    from tkinter import *   ## notice lowercase 't' in tkinter here

Aqui está o link de referência e aqui está o documento

Melhor verificar as versões, conforme sugerido aqui :

if sys.version_info[0] == 3:
    # for Python3
    from tkinter import *   ## notice lowercase 't' in tkinter here
else:
    # for Python2
    from Tkinter import *   ## notice capitalized T in Tkinter

Ou você receberá um erro ImportError: No module named tkinter

EDIT 1: Apenas para tornar esta resposta mais genérica, peguei emprestado o seguinte dos comentários. No Fedora, use um dos seguintes comandos

sudo dnf install python3-tkinter-3.6.6-1.fc28.x86_64

ou

sudo dnf install python3-tkinter
codificador-d
fonte
Você pode usar o shebang no script python #! / Usr / bin / env python3 #
Shigiang Liu
1
Aqueles com Fedora executar este comando para instalar: - sudo dnf instalar python3-tkinter-3.6.6-1.fc28.x86_64
Devendra Bhat
Foi a mudança de capitalização (Tkinter para tkinter) que me fez - todos agora precisa atualizar todo o seu código de exemplo :)
Guy Starbuck
Por que ele precisa ser instalado se é uma interface python padrão ?
Marko
Adicionando ao que @DevendraBhat comentou. No fedora você pode usar "sudo dnf install python3-tkinter" para a instalação.
Kelly Bang
67

Como você está usando o Python 3, o módulo foi renomeado para tkinter, conforme indicado na documentação :

Nota O Tkinter foi renomeado para tkinter no Python 3. A ferramenta 2to3 adaptará automaticamente as importações ao converter suas fontes em Python 3.

Burhan Khalid
fonte
8

Para o Windows 10, é importante verificar na instalação do Python o recurso opcional "tcl / tk and IDLE". Caso contrário, você obterá um ModuleNotFoundError: nenhum módulo chamado 'tkinter' . No meu caso, não foi possível instalar o tkinter após a instalação do Python com algo como "pip install tkinter"

Andi Schroff
fonte
Você está certo, o "arquivo zip embutido" do Python não contém tk, devemos fazer o download do "instalador executável" e não se esqueça de selecionar a opção "tcl / tk and IDLE"
tinyhare 07/02
5
Você pode alterar uma instalação python iniciando novamente o instalador python e selecionando "Modificar". Nesse ponto, você pode marcar a caixa de seleção "tcl / tk and IDLE" e obter o módulo necessário.
Sergio Morstabilini
5

Para Windows 10 usando VSCode ou PyCharm com Python 3.7.4 - verifique se Tk está marcado na instalação. Tentei import tkinter as xyzcom superior / inferior t e k 's e todas as variantes sem sorte.

O que funciona é:

import tkinter
import _tkinter
tkinter._test()

Um exemplo em ação:

import tkinter
import _tkinter

HEIGHT = 700
WIDTH = 800

root = tkinter.Tk()

canvas = tkinter.Canvas(root, height = HEIGHT, width=WIDTH)
canvas.pack()

frame = tkinter.Frame(root, bg='red')
frame.pack()

root.mainloop()
Jeremy Thompson
fonte
Não acho que a importação direta _tkintertenha algum efeito. tkinterautomaticamente importará isso.
Bryan Oakley
@BryanOakley Eu não acho que isso tenha algum efeito . Eu posso jurar sobre qualquer coisa que tenha sido a correção e foi para pelo menos outras 5 pessoas. Tem que ser um bug então.
Jeremy Thompson
3

Pode ser necessário instalar a sua versão específica. Conheço casos em que isso era necessário quando eu estava usando muitas versões do python e uma versão em um virtualenv usando, por exemplo, python 3.7 não estava importando o tkinter, eu teria que instalá-lo para essa versão especificamente.

Por exemplo

sudo apt-get install python3.7-tk 

Não faço ideia do porquê - mas isso ocorreu.

deMangler
fonte
2

Certifique-se de que, quando você estiver executando seu código python, ele esteja no contexto python3 . Eu tive o mesmo problema e tudo o que tive que fazer foi inserir o comando como:

sudo python3 REPLACE.py

versus

sudo python REPLACE.py

o último código está incorreto porque tkinter aparentemente não está disponível em python1 ou python2.

Owen Preece
fonte
1

verifique a versão do python que você instalou usando o comando python --version

verifique se o módulo Tk foi instalado corretamente a partir do código a seguir

sudo apt-get install python3-tk 

Verifique se você está usando o SO de código aberto.

verifique o módulo tkinter no seguinte caminho / home / python / site-packages / tkinter altere o caminho de acordo com o seu sistema

Devaliya Pratik
fonte
1

Você só precisa instalá-lo e importá-los do seu projeto assim:

este código importa para a linha de comandos:

sudo apt-get install python3-tk 

depois de importar para o seu projeto:

from tkinter import *
Jafar Choupan
fonte
0

No CentOS7, para fazer isso funcionar com o Python2, eu tive que fazer:

yum -y install tkinter

Observando isso aqui, porque pensei que haveria um pacote pip, mas, em vez disso, é necessário instalar um rpm.

Frederick Ollinger
fonte
0

O tkinter vem com o python ... desinstale o python, reinstale-o, pronto

Giovanni G. PY
fonte
0

Marque o apt para tarefas, ele pode estar marcado como removido

sudo apt autoremove

Em seguida, verifique e instale

Sergey Shamanayev
fonte
0

--------- TRABALHADO NO PITÃO 2.7 ------------

Instale todos os pacotes abaixo

sudo apt-get install git
sudo apt-get install python-tk
sudo apt-get install python-pip
sudo apt install picolisp
sudo -H pip2 install --upgrade pip
sudo pip install -I pillow
sudo apt-get install python-imaging-tk
sudo apt-get install python-tk
RAHUL
fonte
0

O tkinter deve vir com o python mais recente, eu não acho que ele vem com o python 2. eu tive o mesmo problema, mas depois que atualizei para o python 3.8, o tkinter foi instalado

Eloni
fonte
-1

use abaixo.

from tkinter import *
root=Tk()
.....
root.mainloop()
sameer_nubia
fonte
1
Consulte " Explicando respostas inteiramente baseadas em código ". Embora isso possa estar tecnicamente correto, não explica por que resolve o problema ou deve ser a resposta selecionada. Além disso, devemos educar para ajudar a resolver o problema.
the Tin Man