7 Stimmen

Importfehler: kann den Namen Thread nicht importieren

Es ist das erste Mal, dass ich Python lerne, und ich habe versucht, threading von diesem Blog-Beitrag auszuprobieren. Das Problem ist, dass es veraltet zu sein scheint:

import time
from threading import Thread

def myfunc(i):
    print ("schlafe 5 Sekunden im Thread %d" % i)
    time.sleep(5)
    print ("fertig mit Schlafen im Thread %d" % i)

for i in range(10):
    t = Thread(target=myfunc, args=(i,))
    t.start()

Wie kann ich diesen Code ausführen, ohne diesen Fehler zu haben:

$ python helloworld.py
Traceback (most recent call last):
  File "helloworld.py", line 1, in 
    import threading
  File "c:\Documents and Settings\Hermione\learningPython\threading.py", line 2, in 
    from threading import Thread
ImportError: cannot import name Thread

Es ist auch seltsam, dass ich dort threading.py habe, obwohl ich diese Datei bereits gelöscht habe (und sie immer wieder auftaucht!!), sowie einen mysteriösen __PyCache__ Ordner.

16voto

sloth Punkte 95218

Ihr Problem ist, dass Sie einmal eine Datei namens threading.py hatten, die wahrscheinlich eine Byte-Code-Datei namens threading.pyc zurückließ.

Sie müssen es auch löschen.

Ähnliche Frage hier.

EDIT: Wenn Sie Python 3 verwenden, löschen Sie auch das __pycache__-Verzeichnis (hier befindet sich die Datei ab Python 3.2).

11voto

thebjorn Punkte 24008

Sie haben Ihre Datei threading.py genannt, was das gleichnamige Standardbibliotheksmodul verdeckt. .. das sollten Sie nicht tun :-)

0voto

Lennart Regebro Punkte 157632

Sie müssen sowohl die threading.pyc-Datei als auch die threading.py-Datei löschen, oder wenn Sie Python 3.2 verwenden, das __pycache__-Verzeichnis.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X