Seite 1 von 2
ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Samstag 27. Dezember 2014, 12:14
von Marillus
Hallo,
ich habe ein Problem mit folgender Fehlermeldung:
Code: Alles auswählen
Traceback (most recent call last):
File "GUI_communications.py", line 1, in <module>
import tkinter
File "/usr/local/lib/python3.4/tkinter/__init__.py", line 38, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named '_tkinter'
Das Programm läuft wunderbar auf meinem Laptop. Aber auf dem Raspberry nicht.
tkinter ist auf dem aktuellstem stand und upgedatet. Python ist auf 3.4 aktuell.
Was fehlt dem Raspberry was mein Ubuntu bereits hat?
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Samstag 27. Dezember 2014, 12:23
von BlackJack
@Marillus: Das sieht nach einem selbst kompiliertem Python aus bei dem vor dem kompilieren die Tk-Entwicklungspakete nicht installiert waren.
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Samstag 27. Dezember 2014, 12:39
von Marillus
BlackJack hat geschrieben:@Marillus: Das sieht nach einem selbst kompiliertem Python aus bei dem vor dem kompilieren die Tk-Entwicklungspakete nicht installiert waren.
Was bedeutet das konkret?
Auf dem Raspberry waren jeweils tkinter und python vorinstalliert, bevor ich das programm ausgeführt habe.
Interessanterweise habe ich exakt die selbe Fehlermeldung beim Android über IDLE3 auf meinem Handy und auf meinem anderen Raspberry Rechner. Da muss Grundlegend was fehlen.
Was kann ich dann machen um das Problem in den Griff zu bekommen?
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Samstag 27. Dezember 2014, 12:55
von BlackJack
@Marillus: Ob da Python und tkinter vorinstalliert waren ist völlig egal wenn Du ein selbst kompiliertes Python ausführst. Dem sind andere Python-Installationen wurst und auch Module/Packages die für andere Python-Installationen installiert wurden.
Wenn man Programme selber kompiliert und die irgendwelche externen C-Bibliotheken nutzen, dann muss man deren Entwicklungspakete vorher installieren. Die haben bei Debian/Ubuntu in der Regel den Namenszusatz `-dev`. Also in diesem Fall brauchst Du mindestens das `tk-dev`-Paket für die Tk-Version die installiert ist und verwendet werden soll.
Nach dem kompilieren von Python wird übrigens soweit ich mich erinnere ausgegeben welche Module alle *nicht* installiert werden weil Abhängigkeiten fehlen/fehlten. Wenn Dir das mit den Entwicklerpaketen neu ist, dann gibt es sehr wahrscheinlich noch andere Module die nicht vorhanden sind. So aus dem Kopf fallen mir noch SSL-Verschlüsselung und LZMA-Kompression ein die externe Bibliotheken verwenden.
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Samstag 27. Dezember 2014, 13:20
von Marillus
BlackJack hat geschrieben:@Marillus: Ob da Python und tkinter vorinstalliert waren ist völlig egal wenn Du ein selbst kompiliertes Python ausführst. Dem sind andere Python-Installationen wurst und auch Module/Packages die für andere Python-Installationen installiert wurden.
Wenn man Programme selber kompiliert und die irgendwelche externen C-Bibliotheken nutzen, dann muss man deren Entwicklungspakete vorher installieren. Die haben bei Debian/Ubuntu in der Regel den Namenszusatz `-dev`. Also in diesem Fall brauchst Du mindestens das `tk-dev`-Paket für die Tk-Version die installiert ist und verwendet werden soll.
Nach dem kompilieren von Python wird übrigens soweit ich mich erinnere ausgegeben welche Module alle *nicht* installiert werden weil Abhängigkeiten fehlen/fehlten. Wenn Dir das mit den Entwicklerpaketen neu ist, dann gibt es sehr wahrscheinlich noch andere Module die nicht vorhanden sind. So aus dem Kopf fallen mir noch SSL-Verschlüsselung und LZMA-Kompression ein die externe Bibliotheken verwenden.
Ok, danke für die Hilfe. Ich schau mal welche Pakete fehlen und installiere die auf dem Raspberry nach.
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Montag 29. Dezember 2014, 20:14
von Marillus
Problem gelöst: Das Problem war, dass ich .png Bilddateien verwendet habe. Das Programm wird ausgeführt wenn ich die Bilddateibefehle auskommentiere.
Nach dem ich die Bilddateien in .gif gewandelt hatte (und natürlich im Programm angepasst) wurde mein Programm ordnungsgemäß ausgeführt.
Danke
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Montag 29. Dezember 2014, 20:17
von BlackJack
@Marillus: Das war ganz sicher nicht das Problem.
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Donnerstag 1. Januar 2015, 01:19
von Ene Uran
Kann ich vermuten dass andere Tkinter Programme normal functionieren mit Python3 auf deinem Raspberry Pi?
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Donnerstag 1. Januar 2015, 01:57
von Ene Uran
Bin mal ins Elektrolabor gegangen um mit einem der Raspberry Pi Computer zu spielen. Habe versuch mit IDLE3 einem Tkinter Program eine .png Bilddatei zu fuettern, und habe dabei diese Fehlernachricht erhalten:
Traceback (most recent call last):
File "/home/pi/rpi_python/tk/Tk_Image_persist1.py", line 27, in <module>
image1 = tk.PhotoImage(file='Farm.png')
File "/usr/lib/python3.2/tkinter/__init__.py", line 3255, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "/usr/lib/python3.2/tkinter/__init__.py", line 3211, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't recognize data in image file "Farm.png"
Ziemlich deutlich.
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Donnerstag 1. Januar 2015, 09:50
von Sirius3
@Ene Uran: Tkinter hat sich zwischen Python2 und Python3 in dieser Hinsicht nicht weiterentwickelt, es kann ohne Zusatzmodule nur gif und ppm laden. Du mußt zusätzlich Pillow installieren, was bei Deiner Python2-Installation wohl der Fall war.
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Donnerstag 1. Januar 2015, 22:52
von Ene Uran
Versuch mal:
sudo apt-get install python3-tk
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Donnerstag 1. Januar 2015, 23:10
von BlackJack
@Ene Uran: An wen richtet sich das und hast Du dieses Thema komplett durchgelesen und verstanden?
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Freitag 2. Januar 2015, 16:27
von Ene Uran
Der Raspberry Pi kommt normalerweise (Nov 2014) mit Python32 installiert.
Die Fehlermeldung unseres Freundes Marillus ist anders (Python34) als meine (Python32) wenn man aus Versehen ein .png Bild benuetzt.
Ein glueckliches und warmes Neues Jahr!
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Freitag 2. Januar 2015, 16:39
von Sirius3
@Ene Uran: Deine Fehlermeldung ist ja auch eine, die kommt, wenn man versucht Bilder zu laden, dessen Format tkInter nicht versteht. Das ist die selbe, ob man jetzt Python3.2 oder Python3.4 oder irgendeine andere Version benutzt.
Wenn in der ersten Zeile beim ersten Import ein Fehler auftritt, dann ist das sicher keiner, der irgendwas mit Bildern zu tun hat.
Und ich hätte gerne einen kalten Winter.
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Freitag 2. Januar 2015, 16:49
von BlackJack
@Ene Uran: Die Fehlermeldung von Marillus ist nicht nur von einem Python 3.4 sondern von einem *selbst kompilierten* 3.4 das unter ``/usr/local/…`` liegt. Da kann man ganz sicher kein Modul/Package per ``apt-get`` aus den normalen Distributionsquellen für installieren. Und ein *fehlendes* `_tkinter`-Modul macht sich auch nicht erst bemerkbar wenn man versucht ein Bild zu laden sondern schon wenn man versucht die Funktion zum Laden des Bildes zu importieren. Ob und welche Formate die nichtvorhandene Bibliothek dann unterstützt, oder nicht, ist an der Stelle auch erst einmal egal.
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Freitag 2. Januar 2015, 16:50
von Ene Uran
Nach Aussagen von unserem Freund Marillus:
"Das Problem war, dass ich .png Bilddateien verwendet habe."
Wieso dann diese Meldung:
Code: Alles auswählen
Traceback (most recent call last):
File "GUI_communications.py", line 1, in <module>
import tkinter
File "/usr/local/lib/python3.4/tkinter/__init__.py", line 38, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named '_tkinter'
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Freitag 2. Januar 2015, 17:01
von BlackJack
@Ene Uran: Weil das Problem am Anfang halt ein anderes war als das letzte was er gelöst hat bevor es funktionierte. Soll vorkommen das Leute mehr als ein Problem haben, ein Problem erst sichtbar wird wenn ein anderes gelöst ist, und am Ende alle Probleme gelöst sind.

Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Freitag 2. Januar 2015, 17:04
von Ene Uran
Danke!
Was war nun mal das andere Problem?
Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Freitag 2. Januar 2015, 18:06
von BlackJack
@Ene Uran: Das andere Problem war ein nicht-unterstütztes Bildformat, was ja aber auch schon gelöst war nachdem der OP die Bilder in GIFs umgewandelt hat. Du solltest die Beiträge vielleicht wirklich mal lesen.

Re: ImportError: No module named '_tkinter'/ Raspberry
Verfasst: Mittwoch 7. Januar 2015, 14:26
von Marillus
BlackJack hat geschrieben:@Ene Uran: Die Fehlermeldung von Marillus ist nicht nur von einem Python 3.4 sondern von einem *selbst kompilierten* 3.4 das unter ``/usr/local/…`` liegt. Da kann man ganz sicher kein Modul/Package per ``apt-get`` aus den normalen Distributionsquellen für installieren. Und ein *fehlendes* `_tkinter`-Modul macht sich auch nicht erst bemerkbar wenn man versucht ein Bild zu laden sondern schon wenn man versucht die Funktion zum Laden des Bildes zu importieren. Ob und welche Formate die nichtvorhandene Bibliothek dann unterstützt, oder nicht, ist an der Stelle auch erst einmal egal.
Hi, definitiv hat das mein Problem gelöst! Sonst würde das jetzt ja nicht funktionieren

Ich habe ja sonst nichts geändert gehabt an meinem Programm.
Allerdings muss ich noch erwähnen, dass der Raspberry vorher einige Fehlermeldungen vorher ausgegeben hatte, dass ihm Pakete fehlen. Ich habe diese dann installiert gehabt. Vielleicht fehlen dir welche? Ich kann das leider nicht reproduzieren.
Die Fehlermeldung von dir sagt doch aber auch, dass er keine Daten in dem Bild findet? Vielleicht ist die Bilddatei fehlerhaft oder beschädigt?