[Olpc-uruguay] Consulta lamzamiento de Subproceso

Flavio Danesse fdanesse en gmail.com
Mar Mar 20 16:08:09 EDT 2012


Hola Alvaro.

En realidad no pasaste el ejemplo que ejecutas, pero bueno, mira,
subprocess funciona bien en la xo:

Descargate : http://activities.sugarlabs.org/es-ES/sugar/addon/4355

Busca el archivo Mplayer_Reproductor, está hecho en base a subprocess.

En es código lo que hice fue establecer stdin y stdout para el proceso, de
modo que corro mplayer dentro del subproceso, capturando sus devoluciones
en stdout e interactuando con mplayer a través de stdin, es un ejemplo bien
completito y algo complejo, pero una llamada sencilla a subprocess sería:

subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

Y para matar el proceso:

subprocess.kill()

Acá tienes la info del API:
http://docs.python.org/library/subprocess.html?highlight=subprocess#subprocess
Cualquier duda me dices.



El 20 de marzo de 2012 15:27, Alvaro Arias <aarias1978 en gmail.com> escribió:

> Buenas tardes.
>
>
> Quiero hacerles llegar una duda que estoy teniendo, acontinuación les
> copio el código de un método que tengo desarrollado, es método es lanzado
> luego de hacer click en un boton de la interface gráfica lo que proboca
> lanzar la ejecución de otro componente del sistema que estoy desarrollando,
> esta lanzamiento lo realizo utilizando el comando subprocesess.Popen. La
> duda que me genera si este comando es soportado por las ceibalitas, esta
> incógnita me surge pues testeando desde el PC donde tengo el entorno de
> desarrollo el accionar es el correcto, pero cuando genero la activity y la
> ejecuto desde la ceibalita no tengo resultados prositivos, tampoco obtengo
> mensaje de error solamente queda sin actividad el botón.
>
>
> def botonIniciar(self, widget):
>     # Descripción: Ejecuta el subproceso Motor
>
>         if self.fondoElegido == True and self.personajeElegido == True and
> self.tipoDeFinal == True:
>
>             if self.esAceptableElTipoDeFinal() == True:
>
>                 self.escrituraXml.modificarNodosXY(self.documentoXML,
> self.dragAndDrop.arrayBotonesImgLienzo, self.numNivel)
>                 self.escrituraXml.guardarXml(self.documentoXML, "Xml")
>
>                 ruta = os.path.join (self.config.SUBIR_UN_NIVEL,
> self.config.SUBIR_UN_NIVEL,
>                                      self.config.DIR_MOTOR, "main.py")
>
>                 rutaAbsoluta = Utils.obtenerRuta(Utils, ruta)
>
>                 numNivel = str (self.numNivel)
>
>                * subprocess.Popen([sys.executable, rutaAbsoluta,
> numNivel])*
>                 # Popen se encarga de ejecutar comandos externos, en este
> caso un
>                 # ejecutable (el juego creado)
>         else:
>             faltaElegir = self.controlDeArmadoDelJuego()
>             MsjError(self, "No es posible probar el juego ya que falta
> elegir: \n" + faltaElegir)
>
> Espero puedan guiarme, muchas gracias.
> saludos
>
> --
> *Alvaro
> *
>
> _______________________________________________
> Olpc-uruguay mailing list
> Olpc-uruguay en lists.laptop.org
> http://lists.laptop.org/listinfo/olpc-uruguay
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.laptop.org/pipermail/olpc-uruguay/attachments/20120320/43f18be4/attachment.html>


More information about the Olpc-uruguay mailing list