Forum: PC-Programmierung Python - Batteries included!


von Matthias R. (sw2739)


Lesenswert?

Guten Tag,

ich lerne gerade etwas Python 3 und bin schon zu Beginn etwas 
desillusioniert.

Was mir bislang über diese Scriptsprache erzählt wurde klang alles 
super.

Als erstes Projekt sollte eine einfache GUI erstellt werden, da dies im 
Vergleich zu anderen (Hoch-) sprachen denkbar einfach sein sollte.

Leider hakt es aber noch an allen Ecken und Enden. Hierzu drei kurze 
Beispiele.
1
from tkinter import *
2
widget = Tk()
3
Label(widget, text='SOME TEXT').pack(side=TOP,expand=YES,fill=BOTH)
4
widget.mainloop()

Obiger Code funktionert in der IDLE-Ide einwandfei. Da ich aber gerade 
eine Konsole offen hatte, weil ich noch was in C zu kompilieren hatte, 
wollte ich das Script auch einmal über die Shell interpretieren lassen.

Surprise : "NameError: name 'Tk' is not defined"

ixquick (eine Suchmaschine) bemüht und den Hinweis bekommen, dass 
Tkinter nicht installiert sein könnte, also noch mal explizit 'apt-get 
install python3-tk', ohne Erfolg.

Beispiel 2. Anlegen eines einfachen Fensters, nebst enthaltenen Buttons 
zum Beenden des Programmes.
1
import sys
2
from tkinter import *
3
widget = Button(None, text='EXIT', command=sys.exit)
4
widget.pack()
5
widget.mainloop()

Ergebnis, Fenster und Button werden erstellt, aber nach dem Drücken 
besteht das Fenster weiter, Null Reaktion.

Beispiel 3. Ein Fenster in einer ordentlichen Größe ausgeben...
1
Label(fenster, text='SOME TEXT').pack(side=TOP,expand=YES,fill=BOTH)

Erstellt wird tatsächlich ein Fenster in der Größe 1 x 2 cm.

Habe ich, bezogen auf die obigen Beispiele, einfach nur etwas übersehen?

Batteries included -hier Tkinter- und drei von drei Beispielen laufen 
nicht?!

P.S. sollte eigentlich in die Rubrik 'PROGRAMMIERUNG'..., mea culpa!!!

: Verschoben durch Admin
von 42 (Gast)


Lesenswert?

Kennst Du schon
    http://www.tkdocs.com/tutorial/firstexample.html ?
Diese Sammeldoku ist auch nicht schlecht, ist aber für Python 2, glaub 
ich:
    http://infohost.nmt.edu/tcc/help/pubs/tkinter.pdf

Damit's sowohl unter Python 2 als auch 3 läuft, könnte soetwas helfen:
1
if sys.version_info[0] < 3:
2
    from Tkinter import *
3
    from ttk import *
4
    import tkMessageBox
5
else:
6
    from tkinter import *
7
    from tkinter.ttk import *
8
    import tkinter.messagebox

von Kaj (Gast)


Lesenswert?

Wie hast du das Script gestartet?
Hat das Script eine Shebang-Zeile?
Welche Python installation wird aufgerufen, wenn du in der Shell nur den 
Pythoninterpreter startest?

von Sven B. (scummos)


Lesenswert?

Tk ist halt ... naja. Der wesentliche Vorteil ist dass es bei Python 
dabeiliegt xD

Ich empfehle für ernsthafte Dinge das Qt-Framework, da gibt es sehr gute 
Python Bindings für.

von Matthias R. (sw2739)


Lesenswert?

42 schrieb:

>Damit's sowohl unter Python 2 als auch 3 läuft, könnte soetwas helfen:

Das ganze war von vornherein auf Python 3 ausgelegt, sei es vom 
Übungsmaterial her, in Form von Büchern, aber auch der eingesetzten 
Software, die in der Version Python 3.4.2 vorliegt.

Kaj schrieb:
>Hat das Script eine Shebang-Zeile?

Die Idee hatte ich auch schon und habe es mit, mit einer geänderten und 
ohne eine probiert. Das Problem, selbst wenn ich den Python 3 
Interpreter in der Shell starte und die Befehle von Hand eingebe, kommt 
die gleiche Fehlermeldung. Nur eben nicht in der IDLE-Version, da läuft 
es fehlerfrei. (Shell, wie auch IDLE liegen in der Version 3.4.2. vor)

Sven B. schrieb:
>Ich empfehle für ernsthafte Dinge das Qt-Framework, da gibt es sehr gute
>Python Bindings für

Die Bücher die ich habe empfahlen halt Tkinter, mit dem Verweis, 
Batteries included, Standard unter Python, etabliert und funktioniert 
super.

von Sven B. (scummos)


Lesenswert?

Matthias R. schrieb:
> Die Bücher die ich habe empfahlen halt Tkinter, mit dem Verweis,
> Batteries included, Standard unter Python, etabliert und funktioniert
> super.
Naja Standard für die Leute die die Bücher schreiben vielleicht. In der 
Praxis benutzt das kaum eine ernstzunehmende Anwendung. ;p
Ich bin eh kein Fan von Büchern über Programmiersprachen.

: Bearbeitet durch User
von Alexander S. (alesi)


Lesenswert?

Matthias R. schrieb:
> ich lerne gerade etwas Python 3 und bin schon zu Beginn etwas
> desillusioniert.
> ...
> Batteries included -hier Tkinter- und drei von drei Beispielen laufen
> nicht?!


von Matthias R. (sw2739)


Lesenswert?

Alexander S. schrieb:

>Python != tkinter

Tkinter ist ein Wrapper des Tk-Toolkits für die Programmiersprache 
Python!

von Stefan Salewski (Gast)


Lesenswert?

Matthias R. schrieb:
> Die Bücher die ich habe empfahlen halt Tkinter, mit dem Verweis,
> Batteries included, Standard unter Python, etabliert und funktioniert
> super.

Und warum hast Du nicht zuerst Deine Omi um Rat gefragt, bevor Du Dein 
ganzes Taschengeld für den Python-Interpreter ausgegeben hast?

von 42 (Gast)


Lesenswert?

Für einfache GUIs mit Python scheint mir Tkinter das Mittel der Wahl zu 
sein.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Bei mir funktionieren die Beispiele.

Hast du vielleicht irgendwo versehentlich eine Datei namens tkinter.py
angelegt, so dass Python diese anstelle des Originalmoduls lädt?

Folgendes Progrämmchen gibt die im Modul tkinter definierten Symbole
aus:

1
import tkinter
2
print(dir(tkinter))

Ist "Tk" darin enthalten? Wenn nicht, was wird sonst ausgegeben?

von Bernd W. (berndwiebus) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo Matthias und Sven.

Matthias R. schrieb:
> Guten Tag,
>
> ich lerne gerade etwas Python 3 und bin schon zu Beginn etwas
> desillusioniert.
>
> Was mir bislang über diese Scriptsprache erzählt wurde klang alles
> super.
>

Ist auch so. Sogar Informatiklegastheniker wie ich kommen damit klar.

> Als erstes Projekt sollte eine einfache GUI erstellt werden, da dies im
> Vergleich zu anderen (Hoch-) sprachen denkbar einfach sein sollte.
>
> Leider hakt es aber noch an allen Ecken und Enden. Hierzu drei kurze
> Beispiele.

Meist sind das wirklich winzige Aufhänger.

Leider habe ich aktuell keine Zeit, in Deinen Code einzuarbeiten, aber 
ich habe mal ein übungsskript zum Austesten der tkinter GUI geschrieben.

Schau mal in den Anhang nach Buttontest2.zip. In dem Ordner findest Du 
"Buttontest2.py", das ein Python3 skript ist. "P600-Dioden2.gif" gehört 
mit dazu und sollte im gleichen Ordner liegen. Du kannst auch ein 
anderes GIF nehmen, aber weil es über den Namen hartverbunden ist, 
sollte das schon passen.

> Obiger Code funktionert in der IDLE-Ide einwandfei.

Dann ist der Code auch ok.

> Da ich aber gerade
> eine Konsole offen hatte, weil ich noch was in C zu kompilieren hatte,
> wollte ich das Script auch einmal über die Shell interpretieren lassen.
>
> Surprise : "NameError: name 'Tk' is not defined"

Das hört sich danach an, als verstünde der Interpreter das nicht.

könnte sein das mit dem Shebang was nicht funktioniert, es wird der 
falsche Interpreter gestartet, oder ein Pfad stimmt nicht.

Um das auszuschliessen, gehe mit der Konsole mal in den Ordner, indem 
Dein Skript liegt und gebe beim starten dort den interpreter mit an z.B. 
mit dem Kommando "python3 Deinskript.py"

>
> Habe ich, bezogen auf die obigen Beispiele, einfach nur etwas übersehen?

Entweder, oder Deine Lehrbücher sind uralt und auf Python2 bezogen, oder 
aber es sind schlicht Fehler darin.

Die meisten Lehrbücher gehen aus Motivationsgründen zu schnell vorwärts, 
ohne kleinklein zu erklären, damit der Delinquent nicht die Lust 
verliert, und übersehen oft Kleinigkeiten oder bleiben unklar.
Und für den Schreibstil wird dann auch noch öfters mit dem Prädikat 
"Erfolgsorientiert" geworben. :-/

Vermutlich muss man sich die Lehrbücher, die man wirklich braucht, 
selber schreiben.

>
> Batteries included -hier Tkinter- und drei von drei Beispielen laufen
> nicht?!

Den interaktiven Modus nutze ich meist auch nur, um mal schnell was 
auszuprobieren. Für Widgetgeschichten ist er aber eher ungeeignet.
Sowas läuft als Skript einfacher.

Aber hier sind Spezialisten, die Dir dazu mehr sagen können als ich.

> P.S. sollte eigentlich in die Rubrik 'PROGRAMMIERUNG'..., mea culpa!!!

Passiert halt. Vieleicht verschiebt es ja ein Mod.

Hallo Sven.

Sven B. schrieb:
> Tk ist halt ... naja. Der wesentliche Vorteil ist dass es bei Python
> dabeiliegt xD
>
> Ich empfehle für ernsthafte Dinge das Qt-Framework, da gibt es sehr gute
> Python Bindings für.

Tkinter ist halt bei den meisten Python Distributionen fertig mit 
eingepackt. Auch für Windows. Das ist ein Riesenvorteil, wenn es um 
Portabilität geht.

Ausserdem finde ich Tkinter relativ einfach im Handling. Verglichen mit 
QT.
Natürlich ist es auch spartanischer. Aber genau passend für einfachere 
GUIs.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Matthias R. (sw2739)


Lesenswert?

Yalu X. schrieb:

>Ist "Tk" darin enthalten? Wenn nicht, was wird sonst ausgegeben?

Tk ist darin enthalten.

>Bei mir funktionieren die Beispiele.

In der IDLE laufen sie bei mir auch.
1
widget = Button(None, text='EXIT', command=sys.exit)

Hier wird ein Button erstellt, welcher, nachdem er gedrückt wird, dass 
Programm beenden sollte, so mein Verständnis. Und hier passiert gar 
nichts, auch nicht in der IDLE-Variante.

Hallo Bernd.

Bernd Wiebus schrieb:

>Dann ist der Code auch ok.

Gehe ich auch von aus.

>...oder Deine Lehrbücher sind uralt und auf Python2 bezogen, oder
>aber es sind schlicht Fehler darin.

[2011] Lutz, Marc: Programming Python, 4th Edition

,..nur um mal eines zu nennen. Und Python3 steht explizit vorne auf dem 
Cover drauf.

>Meist sind das wirklich winzige Aufhänger.

Glaube ich auch. Hätte ich das mit der Shebang-Zeile nicht schon 
ausgeschlossen und auch das Script innerhalb des Verzeichnisses schon 
mal über 'python3 SCRIPTNAME.py' gestartet, hätte ich auch in diese 
Richtung getippt.

>> Surprise : "NameError: name 'Tk' is not defined"

>Das hört sich danach an, als verstünde der Interpreter das nicht.

..,oder als würde der Interpreter es nicht kennen. Wie oben geschildert. 
Hier hatte jemand eine eher rudimentäre Python-Variante installiert und 
konnte erst mit Tkinter arbeiten, nachdem er 'apt-get install 
python3-tk'
ausgeführt hatte.

>Vermutlich muss man sich die Lehrbücher, die man wirklich braucht,
>selber schreiben.

Jede c-File bekommt immer eine ordentliche Dokumentation und eine 
read_me.txt mit zusätzlichen Erläuterungen. Nichts ist nerviger, als 
sich Wochen später wieder komplett in eine Sache einarbeiten zu müssen, 
nur weil auf Letzteres beim ersten Mal verzichtet wurde.

EDIT: Mein erster Fehler hat sich gerade in Luft aufgelöst, nachdem ich 
die beiden alten Python-Versionen (2 und 3) mit 'apt-get PURGE' 
runtergeschmissen und dann eine Version von Python3 neuinstalliert habe.

Sven B. schrieb:

>Der wesentliche Vorteil ist dass es bei Python dabeiliegt

Batteries included eben. Fand bzw. finde ich super, wenn standardmässig 
solche Sachen mit inbegriffen sind.

Über die Qualität kann man dann immer noch streiten

Bernd Wiebus schrieb:

>Natürlich ist es auch spartanischer. Aber genau passend für einfachere
>GUIs.

Genau, einfach ohne viel Schnick Schnack. So bin ich auch erst 
dazugekommen. Ich hatte bzw. habe ein in C geschriebenes 
Konsolenprogramm für das ich gerne eine GUI hätte, Da ich Python ohnehin 
lernen wollte bot es an.

Mal sehen, da sich der erste Fehler erledigt hat, bin ich zuversichtlich 
auch die beiden anderen Punkte in den Griff zu bekommen.

von Kaj (Gast)


Lesenswert?

Matthias R. schrieb:
> Mein erster Fehler hat sich gerade in Luft aufgelöst, nachdem ich
> die beiden alten Python-Versionen (2 und 3) mit 'apt-get PURGE'
> runtergeschmissen
Schlechte Idee. Python 2 ist nicht aus Spaß unter Linux installiert. Es 
gibt (leider) immernoch sehr viele Programme die auf Python 2 basieren, 
teilweise weil es die externen Python-Module (ebenfalls leider) nur für 
Python 2 gibt.

Ich hoffe das steht in deinem Buch drin:
Python 3 ist nicht abwärtskompatibel zu Python 2. Mit Python 3 wurde die 
API mal aufgeräumt, Module heißen anders, liegen woanders, sachen die 
doppelt waren wurden entfernt, print braucht jetzt Klammern, except 
sieht jetzt anders aus, etc. Und viele Entwickler wehren sich mit Händen 
und Füßen gegen eine Portierung der Module nach Python 3, oder haben die 
Module ganz fallen gelassen, so dass einige Pakete z.B. seit 2010 kein 
Update mehr bekommen haben...

Ich hab mal versucht ein Paket von Python 2 nach 3 zu portieren:
Nach 4 Stunden print und try/except ersetzten hab ich aufgegeben...

Unter Linux solltest du Python 2 nicht einfach deinstallieren! Da hängt 
noch zuviel dran!

von Sven B. (scummos)


Lesenswert?

Kaj schrieb:
> Ich hab mal versucht ein Paket von Python 2 nach 3 zu portieren:
> Nach 4 Stunden print und try/except ersetzten hab ich aufgegeben...
1
2to3 -w .

> Unter Linux solltest du Python 2 nicht einfach deinstallieren! Da hängt
> noch zuviel dran!
Das wird der Paketmanager schon beanstanden wenn es so ist. Es ist aber 
auch nicht so.

von 123456 (Gast)


Lesenswert?

So weit ich weiß ist bei Linux /bin/python, ein Link auf /bin/python2.x.
Die richtige Lösung wäre gewesen, den Link zu löschen und einen auf 
/bin/python3.x zu erstellen, oder noch besser in der Shebang-Zeile den 
Pfad /bin/python3.x anzugeben.

von Matthias R. (sw2739)


Lesenswert?

123456 schrieb:

>oder noch besser in der Shebang-Zeile den
>Pfad /bin/python3.x anzugeben

Hatte ich weiter oben schon erwähnt, dass ich das ebenfalls auf dem 
Zettel hatte und es mehrfach in den verschiedensten Varianten 
ausprobiert habe. Daran hat es definitiv nicht gelegen.

Kaj schrieb:
>Python 2 ist nicht aus Spaß unter Linux installiert. Es
>gibt (leider) immernoch sehr viele Programme die auf Python 2 basieren,

Ich habe die Version 2.7.9 hinterher auch wieder aufgespielt.

>Python 3 ist nicht abwärtskompatibel zu Python 2

Das keine Abwärtskompatibilität besteht stand so ziemlich als erstes in 
dem Buchtitel, den ich weiter oben gepostet habe, daran lag es nicht.

Mal eine blöde Frage...Eigentlich abwägig, aber ich habe meine 
Desktopumgebung vor ein paar Tagen von Gnome3 auf Mate umgestellt. 
Soweit funktioniert auch alles, aber bei Dateizugriffen über das Panel, 
wenn ich das Filesystem über 'Orte' öffne, switcht er wieder halb in den 
Gnome3 Modus.

Kommt mir gerade deshalb in den Sinn, weil der Fehler bei meinem Python3 
Programm auch mal und mal nicht aufzutreten scheint. Ob immer dann, wenn 
auch der letztgenannte "Fehler" auftritt habe ich jetzt noch nicht 
beobachtet.

von Matthias R. (sw2739)


Lesenswert?

Mate Version 1.8.1 hatte ich vergessen

von Norbert (Gast)


Lesenswert?

Matthias R. schrieb:
> Mate Version 1.8.1 hatte ich vergessen

Hast du:
1
System - Einstellungen - Bevorzugte Anwendungen - System - Dateiverwaltung - Caja
eingestellt?
Ich kann mich erinnern, das sich diese Einstellung bei mir mal ohne 
erkennbare menschliche Interaktion änderte.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Matthias R. schrieb:


> Beispiel 2. Anlegen eines einfachen Fensters, nebst enthaltenen Buttons
> zum Beenden des Programmes.
>
>
1
> import sys
2
> from tkinter import *
3
> widget = Button(None, text='EXIT', command=sys.exit)
4
> widget.pack()
5
> widget.mainloop()
6
>
>
> Ergebnis, Fenster und Button werden erstellt, aber nach dem Drücken
> besteht das Fenster weiter, Null Reaktion.

Komisch. Das funktioniert bei mir. Nach dem Knopfdrücken verschwindet 
alles.

Matthias R. schrieb:

>>Vermutlich muss man sich die Lehrbücher, die man wirklich braucht,
>>selber schreiben.
>
> Jede c-File bekommt immer eine ordentliche Dokumentation und eine
> read_me.txt mit zusätzlichen Erläuterungen. Nichts ist nerviger, als
> sich Wochen später wieder komplett in eine Sache einarbeiten zu müssen,
> nur weil auf Letzteres beim ersten Mal verzichtet wurde.

Das hat Python mit den docstrings auch. Und ein Hilfesystem existiert 
auch.

Zu den docstrings:
Eine Docstring zu einer Funktion wird unmittelbar an den Anfang der 
Funktion eingeschlossen von drei Anführungszeichen geschrieben.
1
>>> def testfunktionMitDoku():
2
  """Und das ist die Doku"""
3
  pass
4
  
5
>>> testfunktionMitDoku.__doc__
6
'Und das ist die Doku'
7
>>>

Nach dem pass zweimal Return drücken.
testfunktionMitDoku.__doc__ gibt diesen Docstring zur Funktion 
testfunktionMitDoku aus.

Zum Hilfesystem:
Gib doch mal in IDLE ein:
1
>>> import sys
2
>>> help(sys)


Das Problem der mitgelieferten Doku ist allerdings das gleiche wie bei 
den C-Bibliothekenauch: Sie sind
1) nur so gut, wie sie der Autor gemacht hat, und
2) und sie sind eine gute Erklärung und Gedächnisstütze für den 
erfahrenen Programmierer, aber als Anfänger oder Gelegenheits 
Programmierer wie ich, bei dem zwischen den Coding-Schüben Monate 
liegen, habe ich doch immer Probleme überhaupt zu verstehen worum es 
geht, und greife lieber auf Lehrbücher und Nachschlagewerke bzw, meine 
eigenen Aufzeichnungen und eigene alte Beispielprogramme zurück.

Aus dem Grunde steht zu den docstrings und zum Hilfesystem in 
Lehrbüchern auch nur recht kärglich etwas, aber eine Suchmaschine mit 
den passenden Begriffen gefüttert hilft weiter.

Matthias R. schrieb:

> Mal eine blöde Frage...Eigentlich abwegig, aber ich habe meine
> Desktopumgebung vor ein paar Tagen von Gnome3 auf Mate umgestellt.
> Soweit funktioniert auch alles, aber bei Dateizugriffen über das Panel,
> wenn ich das Filesystem über 'Orte' öffne, switcht er wieder halb in den
> Gnome3 Modus.

Ich hatte Debian 7 mit Gnome und dann auf XFCE umgestellt, bzw. auf 
einem anderen Rechner direkt Debian  8 mit XFCE. Das ist bei mir aber 
kein Unterschied im Verhalten von Python.

>
> Kommt mir gerade deshalb in den Sinn, weil der Fehler bei meinem Python3
> Programm auch mal und mal nicht aufzutreten scheint. Ob immer dann, wenn
> auch der letztgenannte "Fehler" auftritt habe ich jetzt noch nicht
> beobachtet.

Hast Du irgendeine Bibliothek aus irgendeinem Grunde mal im 
Projektordner mit enthalten und dann wieder "ganz woanders"?

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Matthias R. (sw2739)


Lesenswert?

Norbert schrieb:

>Hast du:

>System - Einstellungen - Bevorzugte Anwendungen - System - Dateiverwaltung - Caja

>eingestellt?

Ich selbst nicht. Es kann sein, dass dies im Zuge der Umstellung auf die 
neue Desktopumgebung erfolgt ist, dass weiss ich aber nicht.

Allerdings bin ich nun wieder aus anderen Gründen bei Gnome-3.14.1 
zurück und hier schnurrt Nautilus wie ein Kätzchen!

Bernd schrieb:

>Das Problem der mitgelieferten Doku ist allerdings das gleiche wie bei
>den C-Bibliothekenauch: Sie sind
>1) nur so gut, wie sie der Autor gemacht hat, und
>2) und sie sind eine gute Erklärung und Gedächnisstütze für den
>erfahrenen Programmierer, aber als Anfänger oder Gelegenheits
>Programmierer wie ich, bei dem zwischen den Coding-Schüben Monate
>liegen, habe ich doch immer Probleme überhaupt zu verstehen worum es
>geht, und greife lieber auf Lehrbücher und Nachschlagewerke bzw, meine
>eigenen Aufzeichnungen und eigene alte Beispielprogramme zurück.

Sehe ich ebenso und kann das für mich auch so unterschreiben, dass trotz 
der vielerorts mitgelieferten Dokumentation oder man-pages, Lehrbücher, 
aber vor allem auch eigene Aufzeichnungen und Dokumentationen,   dass 
Mittel der Wahl sind.

Mal eben nachgucken, was ' | less' in der Konsole bewirkt, also schnell 
'ḿan less' ... Wenn man damit fertig ist, kann man sich seinen 
'less-Schein' beim Professor abholen :)

Um mal beim Thema zu bleiben. Ich denke, die von Python mitgelieferte 
tkinter-Dokumenation könnte auch besser sein. Stichwort, Batteries 
included, da gehört meiner Meinung auch die Dokumentation rein. Aber die 
dortigen Beispiele, wenn es denn welche gibt, sind nicht wirklich 
hilfreich, zumindest wenn man in das Thema einsteigen will.

>Hast Du irgendeine Bibliothek aus irgendeinem Grunde mal im
>Projektordner mit enthalten und dann wieder "ganz woanders"?

Nein eigentlich nicht. Wie gesagt, bis vor kurzer Zeit hatte ich mit 
Python3 nichts am Hut. Für die Anfängerbeispiele musste ich auch nicht 
mit den Bibliotheken hantieren, außer die Module einzubinden.

Die Namensräume waren aber korrekt eingebunden, was sich daran zeigte, 
dass es mal und mal nicht lief. Bei einem Fehler wäre wohl von Anbeginn 
an nichts gelaufen.

Ich bin jetzt wieder zurück auf meiner alten neuen Desktopumgebung und 
habe etwas klar Schiff gemacht. Als Nächstes werde ich mal was anderes 
ausprobieren, weil mir nicht nur beim Python Interpreter die besagte 
Merkwürdigkeit aufgefallen ist, sondern auch bei einem in C 
geschriebenen Programm, dass einen auf 'inotify' basierenden 
Eventhandlder beinhaltet.

In dessen Ausgabe werden die Events bis in den hohen zweistelligen 
Bereich hochgezählt und dann ist Sendepause, bis die laufende Nummer 
wieder bei über 1000 anfängt weiterzuzählen und auch dann erst wieder 
eine Ausgabe zurückliefert.

Jetzt, auf dem gnome-Desktop zurück, funktionieren 'bislang' aber alle 
Python-Scripte ohne Ausnahme, sowohl in der Python-Shell, als auch in 
IDLE.
Soweit so gut. Ich werde aber versuchen das aufzuklären, alleine schon 
aus dem Grund, nicht erst wieder bei einem Großprojekt daraufzustoßen, 
dass da irgendwo der Wurm drin sitzt.

von thoska (Gast)


Lesenswert?

Fehler: "NameError: name 'Tk' is not defined"
in der Konsole tritt i.d.R. auf, wenn shebang fehlt.
#! /usr/bin/env  python3

von blubb (Gast)


Lesenswert?

Da der thread 1 Jahr alt ist, denke ich, dass der  TO das inzwischen 
auch weiß.

Alternativ kann man ein Programm auchbmit 'python program.py' aufrufen 
:p

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.