Seite 1 von 1

hilfe, geisterthread oder was?

Verfasst: Mittwoch 10. Januar 2007, 15:15
von Dill
hi,

ich bin der neue guten tag :)


hab hier ein kurioses problem.
eben habe ich ein scipt das ich die ganze zeit immer in die shell kopiert habe mit einem if __name__=="__main__": ausgestettet um es direkt starten zu können.

jetzt gibt das programm strings aus die in viel früheren versionen benutzt wurden. habe dann nach und nach einiges weggelöscht und:
es reicht ein import von Queue oder threading um diese strings auszugeben!

Code: Alles auswählen

C:\python>python xxx.py
Source No1 waiting for data to send!
Source No2 waiting for data to send!
Traceback (most recent call last):
  File "xxx.py", line 6, in <module>
    ack = Queue.Queue(1)
  File "c:\python25\lib\Queue.py", line 31, in __init__
    self.mutex = threading.Lock()
AttributeError: 'module' object has no attribute 'Lock'
Unhandled exception in thread started by
Error in sys.excepthook:

Original exception was:
Unhandled exception in thread started by
Error in sys.excepthook:

Original exception was:
Unhandled exception in thread started by
Error in sys.excepthook:

Original exception was:

C:\python>type xxx.py

import Queue

if __name__=="__main__":
    ack = Queue.Queue(1)

oder hier eine andere version:


Code: Alles auswählen

C:\python>python xxx.py
Source No1 waiting for data to send!
hello world
Unhandled exception in thread started by
Error in sys.excepthook:

Original exception was:
Unhandled exception in thread started by
Error in sys.excepthook:

Original exception was:
Unhandled exception in thread started by
Error in sys.excepthook:

Original exception was:

C:\python>type xxx.py

import threading


if __name__=="__main__":
    print "hello world"


fällt dazu jemand was ein?

Verfasst: Mittwoch 10. Januar 2007, 15:56
von BlackJack
Irgendwie habe ich nicht ganz verstanden was Du machst. Wie sieht denn Dein Quelltext aus?

Verfasst: Mittwoch 10. Januar 2007, 16:18
von Dill
ich habe die meldungen der programme und das programm aus der shell rauskopiert, evtl etwas unübersichtlich.

das erste. programm:

Code: Alles auswählen

import Queue

if __name__=="__main__":
    ack = Queue.Queue(1)
das zweite programm:

Code: Alles auswählen

import threading

if __name__=="__main__":
    print "hello world"

die machen also nicht wirklich viel.

problem ist, dass meldungen wie
"Source No1 waiting for data to send!"

die in früheren versionen des programms (innerhalb von threads) ausgegeben wurden hier erscheinen.
und eben die exceptions ...

Verfasst: Mittwoch 10. Januar 2007, 16:25
von Rebecca
Hast du zufaellig in dem gleichen Ordner Dateien namens Queue.py(c) und threading.py(c)?

Verfasst: Mittwoch 10. Januar 2007, 16:52
von Dill
wer hat nur diese datei da rein kopiert? :oops:

vielen dank