it-swarm.dev

Installieren Sie tkinter in python3.6 unter Ubuntu

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

Da es 2 Versionen von Python 3 gibt, funktioniert alles, was aus dem Repository installiert wird, für Python 3.6 nicht. Die neueste Version von Python in den Repositorys ist 3.2, daher brauche ich Quellinstallationen oder Pip3.6.

Nachdem ich python3.6 gestartet hatte, versuchte ich import tkinter, was den folgenden Fehler ergab. Obwohl help('modules') eine Liste der Module zurückgegeben hat, die tkinter enthalten.

 import tkinter
 ModuleNotFoundError: No module named '_tkinter'

Ich habe versucht, dasselbe in python3.2 zu tun, und es gab keine Fehler . tkinter._tkinter gab den Ort der tkinter-Bibliothek für python3.2 an

Ich cd'd in das python3.6-Verzeichnis, das alle Bibliotheksdateien enthält und in der Tat fehlte die tkinter.so-Objektdatei.

Wie kann ich den Fehler beheben? 

Ich möchte, dass tkinter/tkagg funktioniert, da anscheinend alle Module/Pakete bereits installiert sind.

Nachdem ich noch etwas gegoogelt hatte, musste ich python3.6 erneut erstellen, diesmal jedoch mit Tcl/Tk-Optionen während des Konfigurationsvorgangs. Ich würde lieber nicht. Es dauert ungefähr 1 Stunde, um python3.6 von Grund auf zu installieren. 

Gibt es eine andere Möglichkeit, python3.6 zu sagen, wo sich Tcl/Tk befindet?

Das Problem sagt nicht Python, wo Tcl/Tk ist. Nachdem ich mit dem Quellcode von python3.6 herumgespielt hatte und dann python3.6 mit python3.2 verglichen hatte, stellte ich fest, dass tkinter _tkinter aufruft, die keine Python-Datei ist, sondern eine .so-Datei (shared object), die Python während der Installation erstellt via setup.py, das gcc verwendet, das irgendwie distutils beinhalten kann.

Die neue und passendere Frage lautet: Wie baue ich _tkinter.cpython-36m-i386-linux-gnu.so aus tcl/tk?

Hinweis: Ich habe tcl/tk installiert, was ich mit tclsh bestätigt habe und möchte.

16
lapin

vom Terminal laufen:

Sudo apt-get install python3.6-tk

oder einfach neu installieren:

Sudo apt-get install python3.6
8
Enchant97

Ich hatte ein ähnliches Problem wie du, ich gebe die Details dazu und wie ich es gelöst habe.

Auf Ubuntu 16.04 LTS habe ich Python 3.5.2 und Python 2.7.12, aber ich möchte Python3.6 ausprobieren (aus verschiedenen Gründen wie hier ). Also habe ich mich auf diese post verlassen:

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

Beim Versuch, ein Modul mit Tkinter auszuführen, wurde folgende Fehlermeldung angezeigt:

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

Ich habe versucht, tkinter zu installieren, wie in der obigen Meldung gefragt wird:

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.

Natürlich kann ich tkinter immer noch nicht für Python 3.6 verwenden. Wie kann dieses Problem behoben werden?

Mein erster blinder Versuch hat nicht funktioniert:

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

Der zweite arbeitet:

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) ...

Und das hat mein Problem gelöst:

~/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
>>> 
3

Python-Version 3.6.4 (Ubuntu 18.04 LTS)

Sudo add-apt-repository main

Sudo apt-get install python3-tk
1
macm

Versuchen Sie diese Zeilen, es könnte helfen

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'

Pfad vor der Ausführung erneut prüfen.

0
Tushar Wabale

Python-Version 3.6.4 (Ubuntu 18.04 LTS)

Ich hatte den gleichen Fehler: Das Tkinter-Modul wurde nicht gefunden. Selbst nach dem Versuch, über pip $ pip install tkinter Zu installieren, habe ich diese Fehlermeldung erhalten

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

Ich habe versucht, tkinter für Python3.6 zu installieren, indem Sie den Befehl ausführen. Es arbeitete für mich.$ Sudo apt-get install python3.6-tk

0
Swapneneel