ImportError: aucun module nommé 'Tkinter'

207

Pour une raison quelconque, je ne peux pas utiliser le module Tkinterou tkinter. Après avoir exécuté la commande suivante dans le shell python

import Tkinter

ou

import tkinter

J'ai cette erreur

ModuleNotFoundError: aucun module nommé 'Tkinter'

ou

ModuleNotFoundError: aucun module nommé 'tkinter'

Quelle pourrait être la raison et comment pouvons-nous le résoudre?

RasmusGP
la source
7
L'installer n'est-il pas livré avec python?
RasmusGP
Cela dépend de la version que vous utilisez?
Zeb
Le problème était que j'avais la mauvaise version de python installée et que tous les modules n'étaient pas tous
réparés
12
Pourquoi cette question est-elle close? C'est le premier fil qui m'est apparu lorsque j'ai cherché ModuleNotFoundError: No module named 'tkinter'et je pense que le contenu ici est pertinent.
ScottMcC
13
Hey Googler sur Ubuntu! sudo apt-get install python3-tk ; Tous les crédits à l'assistant harrypotter0 ci-dessous mais ce commentaire est un peu en dessous du pli;)
Two-Bit Alchemist

Réponses:

331

Vous devrez probablement l'installer en utilisant l'un des éléments suivants (ou quelque chose de similaire à):

sudo apt-get install python3-tk 

sudo dnf install python3-tkinter

J'utilise Tkinter depuis un moment maintenant. Pourquoi n'essayez-vous pas cela et faites-moi savoir si cela a fonctionné?

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

Voici le lien de référence et voici le doc

Mieux vaut vérifier les versions comme suggéré ici :

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 vous obtiendrez une erreur ImportError: No module named tkinter

EDIT 1: Juste pour rendre cette réponse plus générique, j'ai emprunté ce qui suit aux commentaires. Sur Fedora, veuillez utiliser l'une des commandes suivantes

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

ou

sudo dnf install python3-tkinter
d-coder
la source
Vous pouvez utiliser shebang dans le script python #! / Usr / bin / env python3
Shigiang Liu
1
Ceux qui ont Fedora exécutent cette commande pour installer: - sudo dnf install python3-tkinter-3.6.6-1.fc28.x86_64
Devendra Bhat
C'est le changement de capitalisation (Tkinter à tkinter) qui m'a amené - tout le monde doit maintenant mettre à jour l'intégralité de son exemple de code :)
Guy Starbuck
Pourquoi doit-il être installé s'il s'agit d'une interface python standard ?
Marko
Ajout à ce que @DevendraBhat a commenté. Dans fedora, vous pouvez utiliser "sudo dnf install python3-tkinter" pour l'installation.
Kelly Bang
67

Comme vous utilisez Python 3, le module a été renommé tkinter, comme indiqué dans la documentation :

Remarque Tkinter a été renommé tkinter en Python 3. L'outil 2to3 adaptera automatiquement les importations lors de la conversion de vos sources en Python 3.

Burhan Khalid
la source
8

Pour Windows 10, il est important de vérifier dans l'installation Python la fonctionnalité optionnelle "tcl / tk et IDLE". Sinon, vous obtenez un ModuleNotFoundError: Aucun module nommé 'tkinter' . Dans mon cas, il n'était pas possible d'installer tkinter après l'installation de Python avec quelque chose comme "pip install tkinter"

Andi Schroff
la source
Vous avez raison, le "fichier zip intégrable" Python ne contient pas de tk, nous devons télécharger le "programme d'installation exécutable" et n'oubliez pas de sélectionner l'option "tcl / tk et IDLE"
tinyhare
5
Vous pouvez modifier une installation python en relançant le programme d'installation de python et en sélectionnant "Modifier". À ce stade, vous pouvez cocher la case "tcl / tk et IDLE" et obtenir le module dont vous avez besoin.
Sergio Morstabilini
5

Pour Windows 10 en utilisant VSCode ou PyCharm avec Python 3.7.4 - assurez-vous que Tk est coché dans l'installation. J'ai essayé import tkinter as xyzavec des t et k supérieurs / inférieurs et toutes les variantes sans chance.

Ce qui fonctionne, c'est:

import tkinter
import _tkinter
tkinter._test()

Un exemple en action:

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
la source
Je ne pense pas que l'importation directe _tkinterait un quelconque effet. tkinterimportera automatiquement cela.
Bryan Oakley
@BryanOakley Je ne pense pas que cela ait un effet . Je peux jurer sur tout ce que c'était le correctif et c'était pour au moins 5 autres. Ça doit être un bug alors.
Jeremy Thompson
3

Vous pourriez avoir besoin d'installer pour votre version spécifique, j'ai connu des cas où cela était nécessaire lorsque j'utilisais de nombreuses versions de python et une version dans un virtualenv en utilisant par exemple python 3.7 n'importait pas tkinter je devrais l'installer pour cette version Plus précisément.

Par exemple

sudo apt-get install python3.7-tk 

Je ne sais pas pourquoi - mais cela s'est produit.

deMangler
la source
2

Assurez-vous que lorsque vous exécutez votre code python, il se trouve dans le contexte python3 . J'ai eu le même problème et tout ce que j'avais à faire était d'entrer la commande comme:

sudo python3 REPLACE.py

contre

sudo python REPLACE.py

ce dernier code est incorrect car tkinter n'est apparemment pas disponible en python1 ou python2.

Owen Preece
la source
1

vérifier la version de python que vous avez installée à l'aide de la commande python --version

vérifier le module Tk installé correctement à partir du code suivant

sudo apt-get install python3-tk 

Vérifiez si vous utilisez un système d'exploitation open source, puis

vérifiez le module tkinter dans le chemin suivant / home / python / site-packages / tkinter changez le chemin en conséquence votre système

Devaliya Pratik
la source
1

Il vous suffit de l'installer et de l'importer votre projet comme ça:

cette importation de code en ligne de commande:

sudo apt-get install python3-tk 

après avoir importé tkinter votre projet:

from tkinter import *
Jafar Choupan
la source
0

Sur CentOS7, pour que cela fonctionne avec Python2, je devais faire:

yum -y install tkinter

Notant ceci ici parce que je pensais qu'il y aurait un paquet pip, mais à la place, il faut réellement installer un rpm.

Frederick Ollinger
la source
0

tkinter est livré avec python ... désinstallez python, réinstallez-le, vous avez terminé

Giovanni G. PY
la source
0

Vérifiez apt pour les tâches, il peut être marqué comme supprimé

sudo apt autoremove

Ensuite, vérifiez et installez nécessaire

Sergey Shamanayev
la source
0

--------- TRAVAILLÉ SUR PYTHON 2.7 ------------

Installez tous les packages ci-dessous

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
la source
0

tkinter devrait venir avec le dernier python, je ne pense pas qu'il vienne avec python 2. j'ai eu le même problème mais une fois que j'ai mis à niveau vers python 3.8 tkinter a été installé

Eloni
la source
-1

utiliser ci-dessous.

from tkinter import *
root=Tk()
.....
root.mainloop()
sameer_nubia
la source
1
Voir " Explication des réponses entièrement basées sur le code ". Bien que cela puisse être techniquement correct, cela n'explique pas pourquoi cela résout le problème ou devrait être la réponse sélectionnée. Nous devons éduquer en plus pour aider à résoudre le problème.
The Tin Man
-1

Réinstallez votre python, puis utilisez from tkinter import *pour importer dans votre code. J'espère que cela pourra aider

Yaros
la source