Articles of tubo de

Python: select () no señala todas las entradas desde la tubería

Estoy intentando cargar un progtwig de línea de comandos externo con Python y comunicarme con él a través de tuberías. El progtwig toma la entrada de texto a través de la entrada estándar y produce una salida de texto en líneas a la salida estándar. La comunicación debe ser asíncrona utilizando select (). El problema […]

¿Por qué shell = True come my subprocess.Popen stdout?

Parece que el uso de shell = True en el primer proceso de una cadena de alguna manera elimina la salida estándar de las tareas posteriores: p1 = Popen([‘echo’,’hello’], stdout=PIPE) p2 = Popen(‘cat’, stdin=p1.stdout, stdout=PIPE) p2.communicate() # outputs correctly (‘hello\n’, None) Hacer que el primer proceso use shell = True mata la salida de alguna […]

Usar Popen en un hilo bloquea cada solicitud entrante de Flask-SocketIO

Tengo la siguiente situación: Recibo una solicitud en un servidor socketio. Respondo (socket.emit (..)) y luego comienzo algo con una pesada carga de cómputo en otro hilo . Si el cálculo pesado es causado por subprocess.Popen (usando subprocess.PIPE ), bloquea totalmente cada solicitud entrante siempre que se esté ejecutando, aunque suceda en un subproceso separado. […]

¿Cómo canalizar muchos comandos de bash desde python?

Hola, estoy tratando de llamar al siguiente comando desde python: comm -3 <(awk '{print $1}' File1.txt | sort | uniq) <(awk '{print $1}' File2.txt | sort | uniq) | grep -v "#" | sed "s/\t//g" ¿Cómo podría hacer la llamada cuando también se canalizan las entradas para el comando comm? ¿Hay una manera fácil y […]

Canalización rota al usar los gestores de multiprocesamiento de Python (BaseManager / SyncManager) para compartir la cola con máquinas remotas

En el último mes, hemos tenido un problema persistente con el paquete de multiprocesamiento Python 2.6.x cuando intentamos usarlo para compartir una cola entre varios equipos diferentes (Linux). También he planteado esta pregunta directamente a Jesse Noller, ya que aún no hemos encontrado nada que aclare el problema en StackOverflow, documentos de Python, código fuente […]

El comando de entrada no parece funcionar cuando se usa con Popen Python

Estoy escribiendo una pequeña aplicación de python que ejecuta comandos de scala. Un usuario puede insertar el comando a través de STDIN y luego la aplicación python los envía al intérprete de scala. Una vez que se ejecuta el comando, la aplicación muestra el resultado de la operación. La idea es usar Popen para crear […]

¿Alguien puede explicar el punto muerto del buffer de tubería?

La documentación de Python a Popen afirma: Advertencia Use comunicarse () en lugar de .stdin.write, .stdout.read o .stderr.read para evitar interlockings debido a que cualquiera de los otros buffers de tuberías del sistema operativo llenen y bloqueen el proceso secundario. Ahora, estoy tratando de averiguar cómo puede ocurrir este punto muerto y por qué. Mi […]

Módulo de subproceso de Python, ¿cómo le doy entrada al primero de una serie de comandos canalizados?

Estoy tratando de usar el módulo de subproceso de Python. Lo que necesito es enviar una entrada al primer proceso cuya salida se convierte en la entrada del segundo proceso. La situación es básicamente casi la misma que la del ejemplo que se proporciona en la documentación aquí: http://docs.python.org/library/subprocess.html#replacing-shell-pipeline, excepto que necesito proporcionar la entrada […]

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 […]

Progtwig Python usando os.pipe y os.fork () problema

Recientemente he necesitado escribir un script que realice un os.fork () para dividir en dos procesos. El proceso hijo se convierte en un proceso de servidor y pasa los datos al proceso padre utilizando un conducto creado con os.pipe () . El niño cierra el extremo ‘r’ de la tubería y el padre cierra el […]