Tkinter has no attribute Tk
Fermémamiemando Messages postés 33488 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 janvier 2025 - 17 oct. 2022 à 15:09
- Attributeerror: module 'tkinter' has no attribute 'tk'. did you mean: 'tk'?
- No boot disk has been detected or the disk has failed - Forum Disque dur / SSD
- Persistence module - Forum logiciel systeme
- Hkcmd module ✓ - Forum Virus
- A java exception has occurred ✓ - Forum Minecraft
- No such file or directory ✓ - Forum Linux / Unix
3 réponses
17 oct. 2022 à 08:24
Bonjour
Essaye comme ça
from tkinter Tk root = Tk()
Pour res prochains posts, merci d'utiliser la coloration syntaxique comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
17 oct. 2022 à 11:03
Bonjour,
Heuu, tu voulais surement écrire:
from tkinter import Tk root = Tk()
Modifié le 17 oct. 2022 à 15:12
Bonjour,
Le code indiqué dans #1 est correct. Le code proposé #2 est une autre manière de l'écrire, mais si la première version n'a pas marché, je doute que cette variante marche.
Selon moi, le problème vient de l'import lui-même : tu n'importes pas le fichier que tu crois.
Pour rappel, lorsqu'on importe un module, python itère sur les dossiers référencés dans sys.path jusqu'à trouver un dossier qui semble fournir le fichier importé :
- soit le dossier en question porte le nom du module importé et contient un fichier __init__.py ;
- soit le dossier en question a un nom arbitraire et contient un fichier ".py" qui porte le nom du module ;
- (si l'on n'est dans aucun de ces cas, python passe au dossier suivant).
Je t'invite donc à regarder quel est le fichier que tu importes réellement.
Pour cela, tu peux ajouter ajouter dans ton script ceci :
import pathlib, sys def find_module(module_name: str) -> pathlib.Path: for d in sys.path: for filename in [ pathlib.Path(d) / f"{module_name}.py", pathlib.Path(d) / module_name / "__init__.py" ]: if filename.exists(): return filename return None print(find_module("tkinter"))
La chaîne affichée par le print permettra de voir quel le chemin du module effectivement importé.
Exemple : sous Linux, une installation correcte du python3-tk conduit le script que j'ai proposé à afficher le résultat suivant :
PosixPath('/usr/lib/python3.10/tkinter/__init__.py')
Bonne chance