no module namend tkinter

NameError: name ‚tkinter‘ is not defined

Bitte überprüfen ob tkinter installiert ist :
#apt-get install tkinter


Die Version kann man über den Befehl

tkinter.Tcl().eval('info patchlevel')

überprüft werden.

Wenn die Version aktualisiert werden soll folgende Schritte ausführen:

  1. Überprüfen Sie die Python-Version auf dem Terminal – python --version


  2. Holen Sie sich Root-Benutzerrechte. On terminal type –sudo su
  3. Notieren Sie sich das Passwort des Root-Benutzers
  4. Führen Sie diesen Befehl aus, um zu Python 3.6 zu wechseln –
    update-alternatives --install /usr/bin/python python /usr/bin/python3 1
  5. Überprüfen Sie die Python-Version – python --version
  6. Getan.
root@debian:~# python --version
Python 2.7.16

Non-ASCII character

Non-ASCII character '\xef'
SyntaxError: Non-ASCII character '\xef' in file en-1versuch.py on line 12, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Diese Fehlermeldung weisst auf eine fehlende Definition des ASCII Codes hin.

Die vollständige Python-Quelldatei sollte eine einzige Codierung verwenden. Das Einbetten unterschiedlich codierter Daten ist nicht zulässig und führt zu einem Decodierungsfehler beim Kompilieren des Python-Quellcodes. Jede Codierung, die die Verarbeitung der ersten beiden Zeilen auf die oben angegebene Weise ermöglicht, ist als Quellcode-Codierung zulässig. Dies umfasst ASCII-kompatible Codierungen sowie bestimmte Mehrbyte-Codierungen wie Shift_JIS. Es enthält keine Codierungen, die zwei oder mehr Bytes für alle Zeichen verwenden, wie z. UTF-16. Der Grund dafür ist, den Codierungserkennungsalgorithmus im Tokenizer einfach zu halten.

Dies kann durch Angabe von

# -*- coding: utf-8 -*-

gelöst werden. Es gibt natürlich weitere ASCII Codes. Die Python Seite ist hier zu finden: https://www.python.org/dev/peps/pep-0263/

„UnicodeDecodeError: ‚utf-8‘ codec can’t decode byte 0xff in position 0: invalid start byte“

Hier gibt es Infos zur Programmiersprache Python

import fileinput
import re
input=open("wolf.txt","r")
output=open("output.txt","w")
for line in input:
        re.search(r"ряд","Runde")
        output.write(line)
input.close()
output.close()

In diesem Fall ist die Codierung der Datei nicht angegeben. Es muss diese bei input=open als Argument mit angegeben werden:

import fileinput
import re
input=open("wolf.txt","r","utf-8")
output=open("output.txt","w")
for line in input:
re.search(r"ряд","Runde")
output.write(line)
input.close()
output.close()

SyntaxError: ‚break‘ outside loop

Um break zu nutzen muss eine Schleife existieren. In einer if-Anweisung kann es zum Beispiel nicht genutzt werden.

Was bedeutet ‚break‘ outside loop in Python? Die break-Anweisung kann nur in einer for-Schleife oder einer while-Schleife verwendet werden. Der Fehler break außerhalb der Schleife bedeutet, dass Ihr Code eine break-Anweisung enthält, die sich nicht innerhalb einer Schleife befindet. Die häufigste Ursache für diesen Fehler ist das Einrücken. Sie haben eine break-Anweisung, die sich Ihrer Meinung nach in einer Schleife befindet. Die Einrückungsstufen bedeuten jedoch, dass dies nicht der Fall ist. Überprüfen Sie Ihre Einrückungen – Der gesamte Code, der sich innerhalb der Schleife befinden soll, sollte vom Beginn der Schleife an dieselbe Einrückungsstufe haben. Die andere Fehlerursache ist ein Missverständnis darüber, was eine Unterbrechung bewirkt. Die einzige Funktion besteht darin, die aktuelle Schleife zu stoppen, das Programm nicht zu beenden oder eine Funktion oder etwas anderes zu stoppen.

Die Funktion exit() ist eventuell sinnvoll.

name Label is not defined

  File "ersetzen-tk.py", line 6, in <module>
    label=Label(fenster, text="Willkommen", bg="red", fg="white")
NameError: name 'Label' is not defined

Die Ursache kann der fehlende Import der Label Klasse sein.

über from tkinter import Label kann dies nachgeholt werden.

from tkinter import Label 

AttributeError: module ‚tkinter‘ has no attribute ‚tK‘

Dieser Fehler kann auftreten wenn die Datei tkinter.py genannt wurde.

AttributeError: ‚_tkinter.tkapp‘ object has no attribute ‚Label‘

AttributeError: ‚_tkinter.tkapp‘ object has no attribute ‚Label‘

In diesem Fall überprüfen ob die Label importiert wurden durch

from tkinter import Label

Oder indem alle Module importiert wurden von tkinter:

from tkinter import *

TypeError: ‚module‘ object is not callable

michi@michi-debian:~/python$ python maschenzaehler.py 
Traceback (most recent call last):
  File "maschenzaehler.py", line 3, in <module>
    root = tk()
TypeError: 'module' object is not callable

Der dazugehörige Quelltext war:

import tkinter as tk
from tkinter import *
root = Tk()

w = Label(root, text="Willkommen zum Maschenzaehler")
w.pack()

root.mainloop()

Durch das hinzufügen des Präfix tk wird das Problem gelöst
root=tk.Tk()

import tkinter as tk
from tkinter import *
root = tk.Tk()

w = Label(root, text="Willkommen zum Maschenzaehler")
w.pack()

root.mainloop()

SyntaxError: Non-ASCII character

michi@michi-debian:~$ python tkinter
File „tkinter“, line 5
SyntaxError: Non-ASCII character ‚\xe2‘ in file tkinter on line 5, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Dieser Fehler weisst auf auf Sonderzeichen in Quellcode hin. Sonderzeichen wie ä,ö,ü müssen in Ascii Code umgewandelt werden. Eine meist verwendete Möglichkeit ist die Umwandlung in Selbstlaute: ae , ue, oe

Die Codierung kann am Anfang der Datei festgelegt werden:

# -*- coding: utf-8 -*-