Articles of subproceso

subproceso python se comunica () bloque

Estoy utilizando el módulo de subproceso para llamar a un progtwig externo (plink.exe) para iniciar sesión en un servidor; pero cuando llamo comunicar para leer la salida, está bloqueando. El código está abajo: import subprocess process = subprocess.Popen(‘plink.exe hello@10.120.139.170 -pw 123456’.split(), shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) print process.communicate() #block here Sé que el bloque se debe a […]

Iniciar otro progtwig desde Python> Por separado <

Estoy tratando de ejecutar un progtwig externo y separado de Python. Normalmente no sería un problema, pero el progtwig es un juego y tiene un intérprete de Python incorporado. Cuando uso subprocess.Popen, se inicia el progtwig separado, pero lo hace en la instancia de Python del progtwig original, para que compartan la primera consola de […]

cómo llamar a un progtwig desde Python sin esperar a que regrese

¿hay una manera de llamar a un progtwig desde python sin esperar a que regrese? Creé un script que copia un progtwig a un directorio y ejecuta ese progtwig. pero cuando llamo al progtwig desde python, la secuencia de comandos de python no se cierra hasta que el progtwig inicié las salidas. He intentado os.system […]

Codificación Python para pipe.communicate

Estoy llamando a pipe.communicate desde el módulo de subprocess de Python desde Python 2.6. Me sale el siguiente error de este código: from subprocess import Popen pipe = Popen(cwd) pipe.communicate( data ) Para un cwd arbitrario, y donde los data que contienen unicode (específicamente 0xE9): Exec. exception: ‘ascii’ codec can’t encode character u’\xe9′ in position […]

Ejemplo de subproceso Python3

Soy nuevo en el subproceso. Solo necesito un ejemplo de comunicación () win32 realmente simple entre parent.py y child.py . Una cadena enviada de parent.py a child.py, modificada por child.py y devuelta a parent.py para imprimir () desde parent.py. Estoy publicando esto porque los ejemplos que encontré acaban por no ser win32 o por no […]

Cómo interactuar adecuadamente con un proceso usando el módulo de subproceso

Tengo problemas para redireccionar el stdio de otro progtwig utilizando el módulo de subproceso. El solo hecho de leer la salida estándar se cuelga, y Popen.communicate () funciona pero cierra las tuberías después de leer / escribir. ¿Cuál es la forma más fácil de implementar esto? Estaba jugando con esto en windows: import subprocess proc […]

¿Cómo cierro el stdout-pipe al finalizar un proceso iniciado con el subproceso Popen de Python?

Me pregunto si es posible cerrar el conducto de comunicación al eliminar un subproceso iniciado en un subproceso diferente. Si no llamo a communication (), kill () funcionará como se esperaba, terminando el proceso después de un segundo en lugar de cinco. Encontré una discusión de un problema similar aquí , pero no obtuve respuestas […]

Subproceso de Python: demasiados archivos abiertos

Estoy usando el subproceso para llamar a otro progtwig y guardar sus valores de retorno en una variable. Este proceso se repite en un bucle, y después de unos cuantos miles de veces, el progtwig se bloqueó con el siguiente error: Traceback (most recent call last): File “./extract_pcgls.py”, line 96, in SelfE.append( CalSelfEnergy(i) ) File […]

Error de Popen: No existe tal archivo o directorio

Tengo algunos comandos personalizados. # works subprocess.Popen([‘python’], stdout=subprocess.PIPE) Pero si tengo mis propios comandos del sistema como deactivate , recibo ese error Traceback (most recent call last): File “runner2.py”, line 21, in main() File “runner2.py”, line 18, in main subprocess.Popen([‘deactivate’,], stdout=subprocess.PIPE) File “/usr/lib/python2.6/subprocess.py”, line 633, in __init__ errread, errwrite) File “/usr/lib/python2.6/subprocess.py”, line 1139, in _execute_child […]

canalice una gran cantidad de datos a stdin mientras usa subprocess.Popen

Estoy luchando para entender cuál es la forma en que Python resuelve este problema simple. Mi problema es bastante simple. Si usas el siguiente código se colgará. Esto está bien documentado en el módulo de subproceso doc. import subprocess proc = subprocess.Popen([‘cat’,’-‘], stdin=subprocess.PIPE, stdout=subprocess.PIPE, ) for i in range(100000): proc.stdin.write(‘%d\n’ % i) output = proc.communicate()[0] […]