web-dev-qa-db-fra.com

configure tkinter pour python3.4.2

J'ai récemment rencontré un problème lors de l'installation du dernier fichier python3.X.
L’a installé à l’aide du paquet Python-3.4.2.tar.xz de python.org Après, l’installation a tenté d’importer le module tkinter mais j’ai échoué.

Le résultat de import tkinter était:

 >>> import tkinter 
 Traceback (dernier appel passé): 
 Fichier "", ligne 1, dans 
 Fichier "/ usr/local/lib/python3.4/tkinter/__ init__.py ", ligne 38, dans 
 import_tkinter # Si cela échoue, votre Python risque de ne pas être configuré pour Tk 
 ImportError: aucun module nommé '_tkinter' 

J'ai aussi essayé les solutions suivantes:

mais aucun d'entre eux n'a aidé.
En essayant ces solutions, s’il est remarqué que l’erreur dit:

import _tkinter # Si cela échoue, votre Python peut ne pas être configuré pour Tk

alors j'ai googlé à ce sujet et trouvé ceci .
Lecture de la section Vérification de votre support Tkinter , le Step 1 a échoué et est resté bloqué sur cette ligne

Si vous installez Tcl/Tk dans les emplacements par défaut, il suffit de réexécuter "make" pour créer l’extension _tkinter.

En ce qui concerne la ligne ci-dessus, ma question est la suivante:
Où trouver un fichier make sur lequel exécuter une commande make?

Et comment puis-je configurer le tkinter pour que Python3.4.2 l’accepte?


MODIFIER:

J'ai oublié de mentionner mais import tkinter fonctionne pour l'installation par défaut (Python-3.4.0) de Python sous Ubuntu 14.04.1.

5
devGeek

Pour compiler python3.4.2 à partir de la source avec le module _tkinter, vous devez installer la dépendance de construction suivante:

Sudo apt-get install tk8.6-dev

Il ne vous reste plus qu'à exécuter de nouveau makepour ajouter le support _tkinter car le fichier setup.py détectera automatiquement les en-têtes tk/tcl et créera le module:

~/Downloads/Python-3.4.2$ make
running build
running build_ext
building '_tkinter' extension
gcc -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -DWITH_APPINIT=1 -I/usr/include/tcl8.6 -I/usr/X11/include -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/home/sylvain/Downloads/Python-3.4.2/Include -I/home/sylvain/Downloads/Python-3.4.2 -c /home/sylvain/Downloads/Python-3.4.2/Modules/_tkinter.c -o build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/_tkinter.o
gcc -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -DWITH_APPINIT=1 -I/usr/include/tcl8.6 -I/usr/X11/include -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/home/sylvain/Downloads/Python-3.4.2/Include -I/home/sylvain/Downloads/Python-3.4.2 -c /home/sylvain/Downloads/Python-3.4.2/Modules/tkappinit.c -o build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/tkappinit.o
gcc -pthread -shared build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/_tkinter.o build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/tkappinit.o -L/usr/X11/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib -ltk8.6 -ltcl8.6 -lX11 -o build/lib.linux-x86_64-3.4/_tkinter.cpython-34m.so

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm              
_lzma                 _sqlite3                                 
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
[...]

Maintenant, vous pouvez importer tkinter en python3.4.2:

~/Downloads/Python-3.4.2$ ./python 
Python 3.4.2 (default, Oct 30 2014, 11:34:17) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> 

Réponse originale:

Sauf si vous avez vraiment besoin de python3.4.2, je voudrais simplement utiliser la version par défaut de python3 le 14.04 ( .4. )

Ensuite, tout ce que vous avez à faire est d’installer les paquets suivants:

Sudo apt-get install python3-tk tk

Et lancez l’interprète python de cette façon:

/usr/bin/python3

Sinon, vous aurez toujours la version que vous avez installée dans /usr/local (3.4.2).

Importer tk en python3 devrait maintenant fonctionner:

$ python3
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> 
8
Sylvain Pineau

Si vous avez besoin de tkinter uniquement pour matplotlib, vous pouvez également utiliser un backend différent, tel que Egg: import matplotlib en tant que mpl mpl.use ('Agg') import matplotlib.pyplot en tant que plt

Voir plus de détails ici

0
Noam Peled
Sudo apt-get install python3-tk tk  

pyenv install 3.5.0  

c'est tout

0
user610433

Juste pour que vous sachiez, j'utilise Ubuntu 16.04. En ajoutant à la première réponse, procédez comme suit à partir du fichier python (après extraction):

./configure #(there will be a configure file)
make
make test
Sudo make install

J'avais fait ces choses la première fois, mais c'était toujours en train de me montrer ces erreurs:

IDLE can't import Tkinter.  Your Python may not be configured for Tk.

en exécutant python3 -m idlelib.idle à partir de cmd.

Alors j'ai fait:

Sudo apt-get install tk-dev

ou tu peux faire

Sudo apt-get install tk8.6-dev

puis encore

./configure
make
make test
Sudo make install

Le problème était résolu car, lors de la prochaine exécution de python3 -m idlelib.idle, le code IDLE était ouvert.

0
Pushkaraj Joshi