[Python-de] subprocess mit callback

Alexander Schlarb alexander255 at lavabit.com
Mo Jun 20 21:17:22 CEST 2011


Er sagt bufsize must be integer
dh: Du musst einen Integer anstelle eines Strings übergeben (=keine
Anführungszeichen!)

  common.popen_callback(cb, ["sleep", 10])
  -----------------------------------^

-----Original Message-----
From: Florian Lindner <mailinglists at xgm.de>
Reply-to: Die Deutsche Python Mailingliste <python-de at python.org>
To: python-de at python.org
Subject: [Python-de] subprocess mit callback
Date: Mon, 20 Jun 2011 20:46:14 +0200

Hallo,

ich würde gerne, ein subprocess Popen ein Prozeß aufrufen und mich 
benachrichtigen lassen, wenn dieser fertig ist. Da habe ich auch einen Tipp 
gefunden:

http://stackoverflow.com/questions/2581817/python-subprocess-callback-when-cmd-
exits

mit modifizierten Namen schaut das so aus:

def popen_callback(on_exit, popen_args):
    def threaded_run(on_exit, popen_args):
        print popen_args
        proc = subprocess.Popen(*popen_args)
        proc.wait()
        on_exit()
        return
    thread = threading.Thread(target=threaded_run, args=(on_exit, popen_args))
    thread.start()
    return thread

Nur habe ich leider Probleme das aufzurufen:


In [29]: common.popen_callback(cb, ["sleep", "10"])
['sleep', '10']
Out[29]: <Thread(Thread-12, started 140538833995520)>
Exception in thread Thread-12:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 505, in run
    self.__target(*self.__args, **self.__kwargs)
  File "common.py", line 21, in threaded_run
    proc = subprocess.Popen(*popen_args)
  File "/usr/lib/python2.7/subprocess.py", line 629, in __init__
    raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer

cb ist meine callback funktion.

Ich nehme mal an, er interpretiert die "10" als das zweite Argument für Popen.
Eine Reihe von anderen Methoden führte leider auch nicht zum Erfolg. Auch auf 
die Gefahr hin, mich hier lächerlich zu machen: Wie rufe ich das auf?

;-)

Danke!

Florian
_______________________________________________
python-de maillist  -  python-de at python.org
http://mail.python.org/mailman/listinfo/python-de
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 836 bytes
Beschreibung: This is a digitally signed message part
URL         : <http://mail.python.org/pipermail/python-de/attachments/20110620/5ce10881/attachment.pgp>


Mehr Informationen über die Mailingliste python-de