Problema al importar script en Ubuntu

Iniciado por Tincho.py, 6 Abril 2016, 17:41 PM

0 Miembros y 1 Visitante están viendo este tema.

Tincho.py

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?

engel lex

probablemente se queda esperando a que la ventana termine... te recomiendo que la abras asincronamente es decir, no uses subprocess.call sino subprocess.Popen

Citarsubprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
Run the command described by args. Wait for command to complete, then return the returncode attribute.

Citarclass subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
Execute a child program in a new process. On Unix, the class uses os.execvp()-like behavior to execute the child program. On Windows, the class uses the Windows CreateProcess() function. The arguments to Popen are as follows.

el uso basico es identico

subprocess.call(["ls", "-l"])
variableControlDelProceso = subprocess.Popen(["ls", "-l"])
si no vas a usar pipes ni nada de eso, puedes no declarar la variable

si usas la variables tienes las opciones de Popen que te permiten ver si el programa finalizó o pasarle comandos
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.