[Python-de] Systemkommandos in der Python-Shell

Gerhard Häring haering_python at gmx.de
Mon Jul 15 20:11:25 EDT 2002


* Gerson Kurz <Gerson.Kurz at t-online.de> [2002-07-15 15:32 +0200]:
> > Welche Timer?
> 
> import win32api, threading, Queue
> 
> msgport = Queue.Queue()
> timer = threading.Timer(0.5, lambda: msgport.put(0))
> t0 = win32api.GetTickCount()
> timer.start()
> msgport.get()
> print "timer elapsed after %d ms." % (win32api.GetTickCount() - t0)
> 
> Wenn ich das so ausprobiere, scheint es relativ akkurat zu sein (525
> ms.) allerdings haben wir so ca. 10+ freds am laufen, die können sich
> schon mal ins gehege kommen. Bei uns waren Zeiten von +300 ms drin.

Das liegt meiner Erfahrung nach immer daran, dass eine C-Extension
länger dauernde Aufrufe in Nicht-Python Code macht, während dessen der
GIL nicht freigegeben wird. Dieses "ruckelige" Verhalten kann man
eliminieren, indem man diese Aufrufe findet, und Stellen, in denen
definitiv keine Python-Datenstrukturen verändert werden in ein
Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS Paar packt.

> > Ich probiere uebrigens zur Zeit auch mit wxPython rum, hab aber
> > fuer meinen
> > Geschmack relativ viele Bugs gefunden.
> 
> Unter Windows oder unter Linux?

wxGTK. Ich bin noch nicht so weit, unter Windows zu testen :)

> > Wenn's dir auch so geht und es nicht unbedingt kostenlos sein muss, kannst
> > du ja mal PyQt ausprobieren. [...]
>
> Ist das Qt für Windows nicht ziemlich abgespeckt?

Ich bin mir ziemlich sicher, dass alle Klassen auf X11/win32 und Mac
verfügbar sind.

Gerhard
-- 
This sig powered by Python!
Außentemperatur in München: 21.5 °C      Wind: 5.1 m/s



More information about the Python-de mailing list