Domanda

Expect è un modulo utilizzato per generare applicazioni figlio e controllarle. Sono interessato a Python e Ruby.

È stato utile?

Soluzione

C'è WExpect per Python .

Note nel file wexpect.py (errori di battitura invariati e evidenziazione aggiunta)

  

Wexpect è una porta di pexpext per Windows. Dal momento che Python per Windows manca   i moduli richiesti (pty, tty, select, termios, fctnl e resource) da eseguire   pexpect, era necessario creare un back-end che implementasse qualsiasi funzione   che sono stati utilizzati che si basavano su questi moduli. Wtty.py è questo back-end. Nel   le console del mondo Windows non sono omogenee. Possono usare il livello basso o alto   funzioni di input e output di livello e per gestire correttamente entrambi i casi due   i processi figlio vengono creati per instacne di Spawn, con un figlio intermedio   che può leggere continuamente dalla console e inviare tali dati tramite una pipe   in un'istanza di wtty. Spawner.py è ripristinabile dalla lettura e dal piping   i dati.

     

Ho lasciato tutto il codice intatto che potevo e ho anche cercato di lasciare quanti più commenti   intatto è possibile (soprattutto per le funzioni che non sono state modificate) così tanti   dei commenti sarà fuorviante nella loro relazione con il sistema operativo specifico   funzionalità. Inoltre, le funzioni sendcontrol e sendeof non sono state implementate su   questa volta, poiché non sono riuscito a trovare versioni significative di Windows di queste funzioni.
  inoltre, le console non hanno descrittori fild associati su Windows, quindi il   la variabile globale child_fd sarà sempre Nessuna.

Altri suggerimenti

winpexpect è una porta nativa di pexpect su Windows. Può essere trovato qui:

https://github.com/geertj/winpexpect

È possibile utilizzare il prompt CMD di Windows.

Devi avere Python installato nell'installazione di Windows.

Apri un prompt cmd ed esegui il comando seguente:

C: \ Users \ xxx > pip install pexpect (se hai impostato il percorso Python in una variabile di 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

L'ultima versione funzionante di wexpect risiede su http: // sage. math.washington.edu/home/goreckc/sage/wexpect/

Speriamo che presto verrà unito a monte.

Usa pexpect https://github.com/pexpect/pexpect

" Pexpect è puro Python " quindi funzionerà ovunque, anche senza Cygwin,

modifica: pexpect dipende dal modulo pty che è attualmente disponibile solo per Linux, quindi come Nik ha suggerito che dovresti usare wexpect che è una porta di pexpect

Ho usato con successo Pexpect sotto Cygwin. Per ora non c'è altro modo dovuto a POSIX problemi di compatibilità in Windows.

Un'altra cosa: WExpect funziona come Pexpect, infatti richiede Cygwin! A questo punto, PExpect è una scelta migliore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top