ImportError: Aucun nommé '_tkinter', veuillez installer le paquet python3-tk


28

Je suis nouveau sur Ubuntu et Linux en général.

J'ai créé un système d'exploitation à double démarrage sur mon ordinateur portable (Windows 10 et Ubuntu).

  • Taper: sudo apt-get install python3-tk(ou même python-tk) n'a pas fonctionné.
  • Essayer d'installer le python3-devou python-devel(pas de chance).
  • Téléchargement de Tcl et Tk à installer manuellement.

Dans Windows 10 Bash Subsystem, le Tk et le Tcl sont déjà inclus, donc je pensais qu'Ubuntu l'avait déjà. Mais, je veux utiliser mon bureau Ubuntu pour développer des applications GUI Python.

Alors, comment puis-je installer le Tcl / Tk à utiliser dans Python 3.5 pour le développement de l'interface graphique?

J'ai bien chargé Python 3.5.2 mais j'ai besoin des modules GUI activés.

Le code pour tester le fonctionnement de Tk est:

  1. Type python3
  2. Type:

    import tkinter   
    tkinter._test()
  3. Résultat: un pop-up GUI affichant This is a Tcl/Tk version..


3
"J'ai chargé Python 3.5.2" - comment exactement? si vous exécutez un python installé manuellement, il est peu probable que l'installation de packages python système avec apt-get
steeldriver

1
J'ai vu que votre réponse à votre propre question est de compiler Tcl / Tk à partir des sources mais je ne pense pas que ce soit nécessaire à moins que vous n'ayez installé manuellement Python, c'est-à-dire sans utiliser le gestionnaire de paquets Apt. Pouvez-vous préciser si vous avez installé Python manuellement? L'installation python3-tkpuis l'exécution du code Python que vous avez fourni fonctionne sur mon système Python 3.
edwinksl

Réponses:


30

6
Remarque - pour python3.6 dans lequel python3.5 était ma valeur par défaut, j'ai dû utiliser ... installer python3.6-tk ....
SteveJ

+1. J'ajouterais pour ceux qui lisent ceci que tkinter ne semble pas avoir de package PyPI, de sorte que l'utilisation du gestionnaire de packages Ubuntu comme suggéré dans cette réponse est probablement la meilleure option suivante.
dpritch

1
@dpritch Il y a un paquet disponible dans le dépôt Universe appelé [pypibrowser] ( packages.ubuntu.com/… qui fournit la fonctionnalité que je crois que vous recherchez. A bientôt!
Elder Geek

python3-tkinterpour moi sur Fedora avec dnfau moins.
Pysis

@Pysis Je suis désolé pour toute confusion que vous avez pu rencontrer. Cette réponse comme l'ensemble de ce site concerne Ubuntu. Vous pourriez bénéficier de la visite. La première phrase indique assez clairement, sinon, plus de clarté est disponible ici. À votre santé!
Elder Geek

26

Pour un environnement virtuel python 3.6 avec Python 3.5 comme python "système" (Ubuntu), j'ai dû installer tk 3.6 pour correspondre;

sudo apt-get install python3.6-tk

Mon python par défaut dans ubuntu était de 3,5, donc lors de l'utilisation d'un venv pour 3.6, j'obtiendrais une erreur d'importation. Ça m'a rendu fou pendant un moment.

[Modifier: Comme cette question vieillit]

En général, il semble que si l'on utilise un environnement virtuel avec un python d'une version différente de celle de la machine de base, il faut installer tk pour la version de python utilisée dans l'environnement virtuel.

sudo apt install python3.x-tk

Où 3.x correspondrait à la version de l'environnement virtuel.

[Modifier]

Il peut être nécessaire d'ajouter le référentiel pour tk. D'après mon expérience, c'était le même référentiel à partir duquel j'ai extrait python3.6, mais cela peut changer avec le temps;

sudo add-apt-repository ppa:deadsnakes/ppa

1
Intéressant. Vous pourriez aller jusqu'à expliquer de quel PPA vous l'avez installé pour autant que je sache que python3.6-tk n'existe pas dans les référentiels en ce moment.
Elder Geek

1
J'ai fait un autre montage pour essayer de le rendre plus actuel.
Elder Geek

3
ENFIN! C'est le travail pour moi quand je sudo apt-get install python3-tkne l'ai pas fait. Merci
Peter

2
Pour python 3.7, je devais l'utiliser sudo apt-get install python3.7-tkpour le faire fonctionner
ilias

C'était ça. La seule solution qui a fonctionné pour moi dans douze pages de Stackoverflow.
Avio

0

Cela pourrait être intéressant lors de l'installation à partir de la source (ce que la plupart des utilisateurs de python ne feront pas):

Après avoir installé tcl et tk .

Revenez à votre version de Python, faites make. Et, si plusieurs versions pythonexistent, faites un make altinstall.

  1. Ouvrez Python3.5
  2. type:

    import tkinter
    tkinter._test()
  3. résultats OK - l'interface graphique pop s'est ouverte et fonctionne comme prévu.


2
-1 Cela ne sera pas pertinent pour la plupart des gens car la plupart s'installeront via le gestionnaire de packages plutôt que depuis la source.
RockJake28

ajoutée introduction, donc il ne sera pas semer la confusion et pourrait encore aider quelqu'un
mit

0

Dans mon cas, j'obtenais la même erreur que "ImportError: Aucun module nommé '_tkinter'" pour python3.5 malgré les choses suivantes: - Installation de python3-tk et 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 peut ne pas être configuré pour Tk

Cependant, lorsque j'ai simplement exécuté le python depuis / usr / bin comme /usr/bin/python3.5 depuis le terminal, cela a fonctionné pour moi!

En bref, assurez-vous simplement que la version python exécutée à partir du terminal a le tkinter installé et configuré :)

J'ai Ubuntu16.04 installé sur mon système qui est livré avec python2.7 et python3.5 par défaut


0

L'installation de fichiers de bibliothèque uniquement peut ne pas fonctionner car vous souhaitez utiliser la bibliothèque elle-même et non la développer.

Cela a fonctionné pour moi:

$ sudo apt install tk8.6-dev

bien que cela puisse répondre à la question, vous pouvez peut-être l'étendre pour expliquer ce que fait la commande ci-dessus et pourquoi elle pourrait résoudre le problème?
Joshua Besneatte

ismailarilik Ce que @JoshuaBesneatte essaie de dire, c'est non seulement de donner les commandes au demandeur, mais d'expliquer ce que font les commandes et pourquoi il / elle devrait les appliquer. Dans l'état actuel des choses, votre réponse est susceptible d'être supprimée en raison d'un manque de qualité ... :-(
Fabby
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.