Question

Expect est un module utilisé pour créer et contrôler des applications enfants. Je suis intéressé par Python et Ruby.

Était-ce utile?

La solution

Il existe WExpect for Python .

Notes dans le fichier wexpect.py (fautes de frappe non modifiées et mise en surbrillance ajoutée)

  

Wexpect est un port de pexpext pour Windows. Depuis Python pour Windows manque   les modules requis (pty, tty, select, termios, fctnl et resource) à exécuter   il était nécessaire de créer un back-end qui implémentait toutes les fonctions   qui ont été utilisés qui repose sur ces modules. Wtty.py est ce back-end. Dans   les consoles du monde Windows ne sont pas homogènes. Ils peuvent utiliser bas ou haut   niveau des fonctions d’entrée et de sortie, et de traiter correctement les deux cas deux   les processus enfants sont créés pour l'instauration de Spawn, avec un enfant intermédiaire   qui peut lire en continu à partir de la console et envoyer ces données sur un tuyau   à une instance de wtty. Spawner.py est responsable de la lecture et de la tuyauterie   données.

     

J'ai laissé autant de code intact que possible et j'ai également essayé de laisser autant de commentaires.   intact est possible (surtout pour les fonctions qui n’ont pas été modifiées), autant de   des commentaires seront trompeurs dans leur relation à os spécifique   fonctionnalité. De plus, les fonctions sendcontrol et sendeof ne sont pas implémentées à   cette fois, je ne pouvais pas trouver de versions Windows significatives de ces fonctions.
  De plus, les consoles n’ont pas de descripteur de fichier associé sur Windows, de sorte que   la variable globale child_fd sera toujours None.

Autres conseils

winpexpect est un port natif de pexpect vers Windows. Vous pouvez le trouver ici:

https://github.com/geertj/winpexpect

Vous pouvez utiliser l'invite Windows CMD.

Python doit être installé dans votre installation Windows.

Ouvrez une invite de commande et exécutez la commande ci-dessous:

c: \ Utilisateurs \ xxx > pip installer pexpect (si vous avez défini le chemin Python dans une variable système)

ou

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

La dernière version de travail de wexpect est disponible sur http: // sage. math.washington.edu/home/goreckc/sage/wexpect/

Espérons qu'il sera bientôt fusionné en amont.

Utilisez pexpect https://github.com/pexpect/pexpect

.

"Pexpect est du pur Python" il fonctionnera donc n'importe où, sans Cygwin aussi,

modifier: pexpect dépend du module pty actuellement disponible uniquement pour Linux. C'est pourquoi Nik a suggéré d'utiliser wexpect, qui est un portage de pexpect

.

J'ai utilisé Pexpect avec succès sous Cygwin. Pour le moment, il n'y a pas d'autre solution en raison de problèmes de compatibilité POSIX sous Windows.

Autre chose: WExpect fonctionne comme Pexpect, il nécessite en fait Cygwin! À ce stade, PExpect constitue un meilleur choix.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top