2009-06-25 12 views

Respuesta

17

Hay WExpect for Python.

Notas en el archivo wexpect.py (errores tipográficos sin cambios y resaltando añadido)

Wexpect es un puerto de pexpext a Windows. Dado que python para Windows carece de los módulos necesarios (pty, tty, select, termios, fctnl y resource) para ejecutar pexpect, era necesario crear un back-end que implementara cualquier función que se utilizara que dependiera de estos módulos . Wtty.py es este back-end. En las consolas mundiales de Windows no son homogéneas. Pueden utilizar nivel bajo o alto funciones de entrada y salida de nivel , y para tratar correctamente ambos casos dos procesos secundarios se crean para instacne de freza, con un niño intermidate que puede leer de forma continua desde la consola, y enviar esos datos por una tubería a una instancia de wtty. Spawner.py es responsable de la lectura y el conexionado de datos .

He dejado intacto tanto código como pude y también trató de salir como muchos comentarios intacta es posible (espicially para funciones que no han sido cambiados) tantos de los comentarios que se engañosa en su relación con os funcionalidad específica . Además, las funciones sendcontrol y sendeof se unimplemnted en este tiempo, ya que no pude encontrar versiones de Windows significativas de estas funciones.
descriptores fild, además, las consolas no tienen asociado en Windows, por lo que el child_fd variable global siempre será Ninguno.

+0

@Symmetric: ha cambiado el enlace para que apunte a [ 'winpexpect'] (http: // bitbucket .org/geertj/winpexpect). Pero ['wexpect'] (http://sage.math.washington.edu/home/goreckc/sage/wexpect/) es un módulo diferente. – jfs

+0

@ J.F.Sebastian: buen lugar, esos enlaces antiguos estaban rotos, así que no pude encontrar mucho sobre wexpect. Fijo. – Symmetric

2

Uso pexpect https://github.com/pexpect/pexpect

"Pexpect es puro Python" para que se ejecute en cualquier lugar, sin Cygwin también,

edición: pexpect depende del módulo Pty que se encuentra actualmente disponible sólo para Linux, así como Nik sugirió que debe utilizar wexpect que es un puerto de pexpect

0

Sé que es una entrada antigua, pero he utilizado con éxito Pexpect bajo Cygwin. Por ahora no hay otra forma debido a los problemas de compatibilidad con POSIX en Windows.

Otra cosa: WExpect funciona como Pexpect, de hecho se requiere Cygwin! En este punto, PExpect es una mejor opción.

la esperanza que esto ayudará

Fabio

5

Se pueden utilizar ventanas CMD rápida.

Necesita tener Python instalado en sus ventanas.

abra el comando cmd y ejecute el siguiente comando.

C:\Users\xxx>pip install pexpect (si ha configurado trayectoria del pitón en la variable del sistema)

o

C:\Users\xxx>c:\python27\scripts\pip.exe install pexpect 

Collecting pexpect 
    Downloading pexpect-4.0.1.tar.gz (143kB) 
    100% |################################| 147kB 1.2MB/s 
Collecting ptyprocess>=0.5 (from pexpect) 
    Downloading ptyprocess-0.5.1-py2.py3-none-any.whl 
Building wheels for collected packages: pexpect 
    Running setup.py bdist_wheel for pexpect 
    Stored in directory: C:\Users\xxx\AppData\Local\pip\Cache\wheels\f2\65\89\09578bcd0efeabc7e2b0079cd62d3955c1477f2e55aa5031a4 
Successfully built pexpect 
Installing collected packages: ptyprocess, pexpect 
Successfully installed pexpect-4.0.1 ptyprocess-0.5.1 
Cuestiones relacionadas