Prob mit Threads aus shell und importieren mehrerer Files

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
smallshot
User
Beiträge: 1
Registriert: Freitag 8. Februar 2008, 11:11

Hallo,

Habe ein kleines Problem mit meinen Threads.
Ich möchte aus der Shell heraus eine Funktion einer importierten Klasse aufrufen, diese wiederum startet einen Thread, der mir in bestimmten abständen eine Rückmeldung geben soll (z.B. Datentransfer auf serieller Schnittstelle melden). Das ganze muss aus der Shell funktionieren, wenn ich die Aufrufe aus einer .py datei mach funktioniert das ganze über standard io

Das ganze sieht (vereinfacht) so aus

Code: Alles auswählen

>>> import controller
>>> controller.startThread()
>>> ... #do something
>>> ... #do something else
#wenn thread input meldet hätt ich den gern hier ausgegeben
>>> ... #do something
-------------------------------------------------------------------------------------

Code: Alles auswählen

#file: controller.py

import thread

def startThread():
    t=thread.myThread()
    t.start()
-----------------------------------------------------------------------------------

Code: Alles auswählen

#file: thread.py
from threading import Thread

class myThread(Thread):
    def __init__(self):
        Thread.__init__(self)
    
    def run():
        while True:
            #warte auf input von serieller schnittstelle
            if serial.inWaiting()>0:
                input=serial.read(serial.inWaiting())
                #hier mein problem: wie bekomme ich input zurück an die shell
                print intput? #funktioniert nicht
                raise myException, input? #geht auch nicht

Kann mir jemand helfen?

Mein anderes Problem ist, dass ich mehrere files hab, die ich importieren muss:

z.B.

import x
from y import *
from z import *

gibt es eine möglichkeit, dies in einem import zusammenzufassen, sodass ich direkt auf alle zugreifen kann?

in der Art:

#file: imports.py
import x
from y import *
from z import *
----------------------------------
>>> import imports
>>> x.doSomething()
>>> y.myClass.Foo()

Vielen Dank schonmal im voraus

Kai
Antworten