Могу ли я использовать Expect в Windows без установки Cygwin?
Expect-это модуль, используемый для нереста дочерних приложений и управления ими. Меня интересуют Python и Ruby.
6 ответов
здесь WExpect для Python.
Заметки в wexpect.py
файл (опечатки без изменений и подсветка добавлена)
Wexpect является портом pexpext для Windows. Так как python для Windows не хватает необходимые модули (pty, tty, select, termios, fctnl и resource) для запуска pexpect, необходимо было создать бэк-энд, который реализовывал бы любые функции которые были использованы, которые полагались на эти модули. Wtty.py is этот бэк-энд. В консоли Windows world не являются однородными. Они могут использовать низкий уровень или высокий уровень входных и выходных функций, а для корректного решения обоих случаев два дочерние процессы создаются для instacne из Spawn, с промежуточным дочерним это может непрерывно считываться с консоли и отправлять эти данные по каналу к примеру, wtty. Spawner.py ответственность от чтения и трубопроводов данные.
Я оставил столько кода неповрежденным, сколько я мог, а также пытался оставить как можно больше комментариев intact возможно (espicially для функций, которые не были изменены) так много комментарии будут вводить в заблуждение в их отношении к конкретной ОС функциональность. Кроме того,функции sendcontrol и sendeof unimplemnted на на этот раз, поскольку я не смог найти значимые версии Windows этих функций.
кроме того, консоли не имеют связанных дескрипторов fild в Windows, поэтому глобальный переменная child_fd всегда будет None.
вы можете использовать приглашение CMD Windows.
вам необходимо установить Python в вашей установке Windows.
Откройте командную строку cmd и выполните следующую команду:
C:\Users\xxx>pip install pexpect
(Если вы установили путь Python в системной переменной)
или
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\f2578bcd0efeabc7e2b0079cd62d3955c1477f2e55aa5031a4
Successfully built pexpect
Installing collected packages: ptyprocess, pexpect
Successfully installed pexpect-4.0.1 ptyprocess-0.5.1
последняя рабочая версия wexpect живет в http://sage.math.washington.edu/home/goreckc/sage/wexpect/
надеюсь, он будет объединен вверх по течению в ближайшее время.
использовать pexpect https://github.com/pexpect/pexpect
"Pexpect-чистый Python", поэтому он будет работать в любом месте, без Cygwin тоже,
edit: pexpect зависит от модуля pty, который в настоящее время доступен только для Linux, так как Ник предложил вам использовать wexpect, который является портом pexpect
Я успешно использовал Pexpect под Cygwin. На данный момент нет другого способа из-за POSIX проблемы совместимости под Windows.
другое дело: WExpect работает как Pexpect, на самом деле он требует Cygwin! На данный момент PExpect-лучший выбор.