Hi,
ich möchte tkinter unter Debian haben. Ich habe Debian squeeze und python3.4 manuell installiert. Das Modul tkinter ist unter .../libs/tkinter vorhanden. Leider kommt die Fehlermeldung, dass das Modul _tkinter nicht gefunden wird, es ist auch nicht da. Ich habe mittels einer googleschen Suchanfrage herausgefunden, dass das Paket python-tk bzw. python3-tk nachinstalliert werden muss. Dieses Paket habe ich auch nachinstalliert.
Vorher klappte der Befehl "import Tkinter" unter den Konsolen bei python2.7.x und 3.2.x nicht, nach apt-get install python-tk und python3-tk klappte es unter beiden Konsolen, leider noch nicht beim Interpreter python3.4.1. Beim Installieren von python3-tk hab ich auch gesehen, dass nur automatisch für die python-Versionen 3.2.X die _tkinter-Dinger installiert wurden, aber halt nicht für python3.4.1.
Kann ich das Modul irgendwie auch für python 3.4.1 bekommen? Könnte ich es einfach aus dem Verzeichnis von python3.2.X mit copy-paste in das lib-Verzeichnis für python 3.4.1 kopieren?
tkinter unter linux debian installieren
@Papp Nase: Das `_tkinter`-Modul muss zur Python-Version passen. Wäre komisch wenn Debian-Wheezy kein Python 3.4 als Paket hat, aber gerade *dafür* ein passendes `_tkinter`.
Du wirst Python 3.4 noch mal neu übersetzen müssen und vorher die entsprechenden Header-Dateien für Tcl/Tk installieren müssen die beim übersetzen benötigt werden um das `_tkinter`-Modul zu bauen. Am besten machst Du vorher ein ``apt-get build-dep python3 python3-tk``. Dann hast Du alle Abhängigkeiten die benötigt wurden um die beiden Python 3.2-Pakete aus den Paketquellen zu bauen. Kann nämlich gut sein, dass Du auch kein `ssl`-Modul oder `bzip` hast weil die entsprechenden Header-Dateien nicht vorher installiert waren.
Du wirst Python 3.4 noch mal neu übersetzen müssen und vorher die entsprechenden Header-Dateien für Tcl/Tk installieren müssen die beim übersetzen benötigt werden um das `_tkinter`-Modul zu bauen. Am besten machst Du vorher ein ``apt-get build-dep python3 python3-tk``. Dann hast Du alle Abhängigkeiten die benötigt wurden um die beiden Python 3.2-Pakete aus den Paketquellen zu bauen. Kann nämlich gut sein, dass Du auch kein `ssl`-Modul oder `bzip` hast weil die entsprechenden Header-Dateien nicht vorher installiert waren.
Schade, es hat nicht geklappt. Ich habe vorher das apt-get ausgeführt und auch nochmal neu diese Befehle:
was könnte ich falsch gemacht haben? es kamen beim Compilieren auch keine Fehlermeldungen
was könnte ich falsch gemacht haben? es kamen beim Compilieren auch keine Fehlermeldungen

Code: Alles auswählen
apt-get build-dep python3 python3-tk
$ sudo apt-get install build-essential
$ sudo apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev
$ sudo apt-get install libdb5.1-dev libgdbm-dev libsqlite3-dev libssl-dev
$ sudo apt-get install libbz02-dev libexpat1-dev liblzma-dev zlib1g-dev
$ mkdir -p ~/.pip/cache
$ echo '[global]' > ~/.pip/pip.conf
$ echo 'download_cache = ~/.pip/cache' >> ~/.pip/pip.conf
$ cd /tmp
$ tar -zxf /path/to/your/Python-3.4.1.tgz
$ cd Python-3.4.0
$ ./configure --prefix=/usr/local/opt/python-3.4.1
$ make
$ sudo make install
$ cd /tmp
$ sudo rm -rf Python-3.4.1
@Papp Nase: Also wenn die Header-Dateien installiert sind, dann ist die Frage warum ``--configure`` die nicht findet. Da müsste man dann mal aufmerksam in dessen Ausgabe/Logdatei schauen.
ich hab mal das gemacht:
$ ./configure --prefix=/usr/local/opt/python-3.4.1 >> configure.logfile
und dann
cat configure.logfile | grep tkinter (und auch _tkinter, tkin)
Es gibt keinerlei Wörter, kein Resultat mit dem greppen- wo das tkinter enthalten ist. Ist das schon eine Fehlerquelle?
$ ./configure --prefix=/usr/local/opt/python-3.4.1 >> configure.logfile
und dann
cat configure.logfile | grep tkinter (und auch _tkinter, tkin)
Es gibt keinerlei Wörter, kein Resultat mit dem greppen- wo das tkinter enthalten ist. Ist das schon eine Fehlerquelle?
@Papp Nase: ``configure`` schreibst selbst bereits ein recht umfangreiches Log. Bei mir wird zwar Tcl bzw. die ``tcl.h`` gefunden, aber es scheitert bei mir dann daran dass das Tcl8.5 was ich hier installiert habe keinen genügend grossen Typ für Unicode-Zeichen definiert.
Wheezy ist neuer als mein System, vielleicht liegt's bei Dir ja an etwas anderem.
Wheezy ist neuer als mein System, vielleicht liegt's bei Dir ja an etwas anderem.
Danke fuer die Antwort. Darum hab ich den Log ja in eine Datei umgeleitet und dann mit cat und grep nach tkinter und Variatonen davon gesucht und nichts gefunden.
tcl.h wird in dem Log garnicht gefunden und bei tcl steht:
Ist der Fehler vielleicht das bei UCS-4 tcl... NO steht?
tcl.h wird in dem Log garnicht gefunden und bei tcl steht:
Code: Alles auswählen
checking for --with-tcltk-includes... default
checking for --with-tcltk-libs... default
checking for UCS-4 tcl... no
@Papp Nase: Genau das ist auch das was bei mir ausgegeben wird.
Nur noch mal zur Sicherheit: Das Log ist nicht die Ausgabe die Du umgeleitet hast sondern eine Datei mit dem Namen ``config.log`` die von ``configure`` geschrieben wird ohne das man da irgendwas für machen müsste.
Nur noch mal zur Sicherheit: Das Log ist nicht die Ausgabe die Du umgeleitet hast sondern eine Datei mit dem Namen ``config.log`` die von ``configure`` geschrieben wird ohne das man da irgendwas für machen müsste.
ok, und hast Du das Problem irgendwie gelöst bei Deiner Distribution mit dem fehleden tcl?
Ich hab das hier noch gefunden:
http://shanit.blogspot.de/2011/03/confi ... plays.html
aber ich hab noch nicht so genau kapiert, was die da machen.
Ich hab das hier noch gefunden:
http://shanit.blogspot.de/2011/03/confi ... plays.html
aber ich hab noch nicht so genau kapiert, was die da machen.
Sind eigentlich die Unterschiede zw. Python-3.2 und Python-3.4 groß? Bei Python3.2 (dass unter debian-wheezy vorhanden ist und tkinter auch drauf läuft) - funktioniert.
Meine Vorgabe lautet aber zur Zeit, Python-3.4.1 zu verwenden, weil Python 3.2.X zu fehlerbehaftet sei (nicht meine Aussage!) und nicht so gut wie Python-3.4.X. Aber wenn Python-3.4 in deb.wheezy nicht einfach so mit drinnen ist und von selber nachkompiliert werden muss - und da es bestimmt auch noch bei anderen schönen Paketen von Python so sein wird - wie eben in dem Link die Matplotlib - dann wird das bestimmt alles sehr kompliziert.
Ist denn Python-3.4.x soviel besser als das Python-3.2.x, so dass mein Chef recht hat, unbedingt mit dem neuesten Interpreter zu programmieren oder ist die ältere Version auch "brauchbar", und wenn der neue Nachfolger von wheezy dann stable ist, dann einfach die Programme, die auf 3.2.x programmiert wurden, dann auf 3.4.x laufen zu lassen - würde das ohne Probleme gehen?
Meine Vorgabe lautet aber zur Zeit, Python-3.4.1 zu verwenden, weil Python 3.2.X zu fehlerbehaftet sei (nicht meine Aussage!) und nicht so gut wie Python-3.4.X. Aber wenn Python-3.4 in deb.wheezy nicht einfach so mit drinnen ist und von selber nachkompiliert werden muss - und da es bestimmt auch noch bei anderen schönen Paketen von Python so sein wird - wie eben in dem Link die Matplotlib - dann wird das bestimmt alles sehr kompliziert.
Ist denn Python-3.4.x soviel besser als das Python-3.2.x, so dass mein Chef recht hat, unbedingt mit dem neuesten Interpreter zu programmieren oder ist die ältere Version auch "brauchbar", und wenn der neue Nachfolger von wheezy dann stable ist, dann einfach die Programme, die auf 3.2.x programmiert wurden, dann auf 3.4.x laufen zu lassen - würde das ohne Probleme gehen?
@Papp Nase: Tcl ist ja da, passt halt nur nicht zu Python 3.4. Keine Ahnung ob Tcl 8.5 zu alt ist, oder ob man es mit UCS-4 neu kompilieren könnte. Ich löse das Problem in dem ich Python 2.7 benutze. 

Hmm, schade. Unter Windows läuft der Kram mit Python3.4.x und dem Interpreter, aber halt nicht auf dem Unix-System, aber es ist halt meine Vorgabe 
gibt es denn zw. Python 2.7 und Python 3.4 große Unterschiede oder lässt sich ein Python2.7 Programm später leicht für einen 3.4.x-Interpreter migrieren?

gibt es denn zw. Python 2.7 und Python 3.4 große Unterschiede oder lässt sich ein Python2.7 Programm später leicht für einen 3.4.x-Interpreter migrieren?
@Papp Nase: Wenn Du Programme für Python 3.2 schreibst, sind die mit großer Wahrscheinlichkeit ohne Änderungen unter Python 3.4 ausführbar. Siehe dazu https://docs.python.org/3.4/whatsnew/3. ... python-3-4. Benutzt Du irgendwelche dieser Features, kannst Du Probleme beim Portieren bekommen.
Der größere Schritt war wohl der von 3.2 nach 3.3: https://docs.python.org/3.4/whatsnew/3.3.html, so dass viele Pakete Python 3.3 voraussetzen. Vor allem u'xx' macht das Leben von Paketschreibern, die sowohl 2.7 als auch 3.3+ unterstützen wollen, einfacher. 3.2 bleibt dann aber außen vor.
Wenn Du der einzige Programmierer in Deinem Projekt bist und nicht auf bestimmte Libraries angewiesen bist, kannst Du bei 3.2 bleiben.
Der größere Schritt war wohl der von 3.2 nach 3.3: https://docs.python.org/3.4/whatsnew/3.3.html, so dass viele Pakete Python 3.3 voraussetzen. Vor allem u'xx' macht das Leben von Paketschreibern, die sowohl 2.7 als auch 3.3+ unterstützen wollen, einfacher. 3.2 bleibt dann aber außen vor.
Wenn Du der einzige Programmierer in Deinem Projekt bist und nicht auf bestimmte Libraries angewiesen bist, kannst Du bei 3.2 bleiben.