[Python-es] Problema al importar script en Ubuntu

Carlos Zuniga carlos.zun en gmail.com
Vie Abr 8 11:26:09 EDT 2016


2016-04-07 6:49 GMT-05:00 Martín Liporace <martin.liporace en gmail.com>:
> Gracias por tu respuesta, Carlos. Estuve tratando de entender cómo
> funciona Popen y no encontré ejemplos claros en español. Qué
> argumentos debo pasarle si quiero que desde menu.py ejecute
> consulta.py, que se encuentra en el mismo directorio?
>

Como mínimo `subprocess.Popen(['python', 'consulta.py'])`. Si
necesitas algún uso más avanzado solo mira la documentación
https://docs.python.org/2.7/library/subprocess.html#popen-constructor

> El 7/4/16, Carlos Zuniga <carlos.zun en gmail.com> escribió:
>> 2016-04-06 10:48 GMT-05:00 Martín Liporace <martin.liporace en gmail.com>:
>>> Hola a todos. Trataré de describir lo más claramente posible el
>>> problema que tengo. Estoy adaptando un programa de consulta de stock
>>> que desarrollé en Windows con Python 2.7 y PyQt4 para que funcione con
>>> Ubuntu. El mismo posée una ventana principal con cuatro botones
>>> (consultar, ingresar nuevos artículos, modificar artículos y salir).
>>> En Windows quedó perfecto: uso el botón Consultar, por ejemplo, y se
>>> abre una nueva ventana con sus correspondientes funciones, SIN que se
>>> cierre la del menú principal. Si cierro la de consulta, puedo seguir
>>> usando la primera, hasta que la cierre. El problema es que en Ubuntu
>>> no puedo usar os.startfile, y al usar subprocess.call se abre la
>>> segunda ventana, puedo utilizarla perfectamente PERO la primera se
>>> bloquea (y hasta toma un tono más oscuro). Qué estoy haciendo mal?
>>
>> Por lo que entiendo la manera en la que abres la segunda ventana es
>> ejecutando un nuevo interprete de python con el otro script?
>>
>> Si es así, subprocess.call espera a que el programa que has ejecutado
>> termine, así que se bloquea el script. Deberías usar subprocess.Popen.
>>
>> Por otro lado, en lugar de ejecutar otro interprete, podrías
>> simplemente abrir la ventana creando una instancia y mostrarla todo
>> dentro del mismo proceso.


Más información sobre la lista de distribución Python-es