Après un Sudo apt-get upgrade
, j'obtiens l'erreur suivante:
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 36, in <module>
import _tkinter
ImportError: No module named '_tkinter'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/tkinter/__init__.py", line 38, in <module>
raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package
J'ai python3-tk
installé. J'ai déjà essayé de le purger et de l'installer. Ça ne change rien. (Il est intéressant de noter que le /usr/lib/python3.5/tkinter
existait toujours après le pruging ... et le supprimer manuellement ne provoquait qu'une autre erreur)
Comment puis-je résoudre ce problème?
$ Sudo apt-get install tk8.6-dev
$ Sudo apt-get install python3-tkinter # does not exist
$ Sudo apt-get install python3-tk # exists and is installed
$ ls -l /usr/lib/python3.5/tkinter
total 372
-rw-r--r-- 1 root root 1791 Nov 28 17:50 colorchooser.py
-rw-r--r-- 1 root root 1412 Nov 28 17:50 commondialog.py
-rw-r--r-- 1 root root 1493 Nov 28 17:50 constants.py
-rw-r--r-- 1 root root 1568 Nov 28 17:50 dialog.py
-rw-r--r-- 1 root root 11488 Nov 28 17:50 dnd.py
-rw-r--r-- 1 root root 14502 Nov 28 17:50 filedialog.py
-rw-r--r-- 1 root root 6581 Nov 28 17:50 font.py
-rw-r--r-- 1 root root 162249 Nov 28 17:50 __init__.py
-rw-r--r-- 1 root root 148 Nov 28 17:50 __main__.py
-rw-r--r-- 1 root root 3701 Nov 28 17:50 messagebox.py
drwxr-xr-x 2 root root 4096 Nov 30 08:12 __pycache__
-rw-r--r-- 1 root root 1814 Nov 28 17:50 scrolledtext.py
-rw-r--r-- 1 root root 11424 Nov 28 17:50 simpledialog.py
-rw-r--r-- 1 root root 77014 Nov 28 17:50 tix.py
-rw-r--r-- 1 root root 55839 Nov 28 17:50 ttk.py
Lorsque je déplace le répertoire, je reçois:
$ Sudo mv tkinter tkinter-backup
$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'tkinter'
Plus d'informations
$ which python3
/usr/bin/python3
$ apt list python3
Listing... Done
python3/xenial,now 3.5.1-3 AMD64 [installed]
Le paquet python3-tk prend en charge python versions 3.6 et 3.7, et non 3.5, ce qui est votre valeur par défaut. Changez votre python par défaut en une version prise en charge si votre travail le permet. Sinon, si vous avez vraiment besoin de la version 3.5, vous devrez localiser les fichiers de support.
Dans mon cas, je recevais la même erreur que "ImportError: aucun module nommé '_tkinter'" pour python3.5 malgré les opérations suivantes: - Installation de python3-tk et de tkinter-dev - Le répertoire Tkinter étant disponible dans /usr/lib/python3.5.
L'erreur observée provient du fichier suivant:
Fichier "/usr/local/lib/python3.5/tkinter/init.py", ligne 35, dans import _tkinter # Si cela échoue, votre Python risque de ne pas être configuré pour Tk
Cependant, quand j’exécutais simplement le python à partir de/usr/bin comme /usr/bin/python3.5 du terminal, cela a fonctionné pour moi!
En bref, assurez-vous que la version python exécutée depuis le terminal a le tkinter installé et configuré :)
Ubuntu16.04 est installé sur mon système avec les paramètres par défaut python2.7 et python3.5
Avez-vous essayé import Tkinter
(avec un T majuscule) dans votre programme python? Cela l'a fait pour moi.