Installez tkinter en python3.6 sur Ubuntu

+--------+-----------------------------------+
|   OS   |           Ubuntu 12.04            |
+--------+-----------------------------------+
| Python | 2.7, 3.2 and source installed 3.6 |
+--------+-----------------------------------+

Puisqu'il y a 2 versions de Python 3, Tout ce qui est installé depuis le dépôt ne fonctionne pas pour Python 3.6. La dernière version de Python dans les dépôts est 3.2, donc j'ai besoin d'installer les sources ou via pip3.6.

Après le démarrage python3.6 j'ai essayé import tkinter, qui a donné l'erreur suivante. Même si help('modules') renvoie une liste de modules incluant tkinter.

 import tkinter
 ModuleNotFoundError: No module named '_tkinter'

j'ai essayé de faire la même chose dans python3.2 et il y avait pas de les erreurs. tkinter._tkinter a donné l'emplacement de la bibliothèque tkinter pour python3.2

j'ai le cd avais dans l' python3.6 répertoire qui a tous les fichiers de la bibliothèque et en effet il manquait le tkinter.so fichier de l'objet.

comment corriger l'erreur?

j'aimerais que tkinter / tkagg fonctionne car il semble que tous les modules/ paquets soient déjà installés.

Après googler un peu plus, j'ai trouvé j'ai besoin de construire python3.6 encore une fois, mais cette fois avec les options Tcl/Tk lors de l'exécution de configurer. Je préfère ne pas. Il faut environ 1h pour installer python3.6 à partir de zéro.

Est-il un autre moyen où je peux dire python3.6 où se trouve Tcl / Tk?

le problème n'est pas de dire à python où se trouve tcl/tk. Après avoir joué avec python3.6 est le code source, et ensuite comparer python3.6 avec python3.2, j'ai découvert que tkinter appelle _tkinter qui n'est pas un fichier python, c'est un .donc (objet partagé) le fichier que python construit pendant installation via setup.py qui utilise gcc, qui d'une façon ou d'une autre peut impliquer distutils.

la nouvelle et plus appropriée question Est Comment puis-je construire, _tkinter.cpython-36m-i386-linux-gnu.so de tcl / tk?

Remarque : je n'ai tcl/tk est installé, que j'ai confirmé à l'aide de tclsh et le souhaitez.

14
demandé sur lapin 2017-03-06 13:22:05

4 réponses

exécuter dans le terminal:

sudo apt-get install python3.6-tk

ou tout simplement réinstaller complètement:

sudo apt-get install python3.6
6
répondu Enchant97 2017-10-05 19:24:32

j'ai fait face à un problème similaire au vôtre, je donne les détails de celui-ci et comment je l'ai résolu.

sur Ubuntu 16.04 LTS, J'ai Python 3.5.2 et Python 2.7.12 mais je voudrais expérimenter Python3.6 (pour des raisons diverses comme celui-ci, par exemple). Je me suis donc fiée à cela!--11 -- > post:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6

Quand j'ai essayé d'exécuter un module en utilisant tkinter, j'ai ce message d'erreur:

Traceback (most recent call last):
  File "/usr/lib/python3.6/tkinter/__init__.py", line 37, in <module>
    import _tkinter
ModuleNotFoundError: No module named '_tkinter'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "bill.py", line 3, in <module>
    from tkinter import Canvas, Label, Tk, StringVar, Button, LEFT
  File "/usr/lib/python3.6/tkinter/__init__.py", line 39, 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 essayé d'installer tkinter que le message ci-dessus demande:

sudo apt-get install python3-tk
[sudo] password for begueradj: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-tk is already the newest version (3.5.1-1).
0 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.

évidemment, je ne peux toujours pas utiliser tkinter pour Python 3.6. Comment résoudre ce problème?

Mon premier blind tentative ne fonctionne pas:

sudo apt-get install python36-tk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package python36-tk

Le second fonctionne:

sudo apt-get install python3.6-tk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  tix python3.6-tk-dbg
The following NEW packages will be installed:
  python3.6-tk
0 upgraded, 1 newly installed, 0 to remove and 8 not upgraded.
Need to get 74.6 kB of archives.
After this operation, 165 kB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu xenial/main amd64 python3.6-tk amd64 3.6.5-1+xenial1 [74.6 kB]
Fetched 74.6 kB in 0s (301 kB/s)        
Selecting previously unselected package python3.6-tk:amd64.
(Reading database ... 324106 files and directories currently installed.)
Preparing to unpack .../python3.6-tk_3.6.5-1+xenial1_amd64.deb ...
Unpacking python3.6-tk:amd64 (3.6.5-1+xenial1) ...
Setting up python3.6-tk:amd64 (3.6.5-1+xenial1) ...

Et qui a résolu mon problème:

~/python3.6
Python 3.6.5 (default, Mar 29 2018, 03:28:50) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> 
2
répondu Billal Begueradj 2018-05-03 11:40:43

essayez ces lignes, cela pourrait aider

os.environ['TCL_LIBRARY'] = r'C:\Users\asus\AppData\Local\Programs\Python\Python36-32\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Users\asus\AppData\Local\Programs\Python\Python36-32\tcl\tk8.6'

revérifiez le chemin avant l'exécution.

0
répondu Tushar Wabale 2017-08-17 06:14:17

Python version 3.6.4 (Ubuntu 18.04 LTS)

j'avais la même erreur: le module tkinter n'a pas été trouvé. Même après avoir essayé d'installer via pip $ pip install tkinter J'ai eu cette erreur, en dessous de

Collecting tkinter
  Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter

je l'ai fait essayé d'installer a travaillé pour moi. $ sudo apt-get install python3.6-tk

0
répondu Swapneneel 2018-07-01 04:17:16