我可以在没有安装Cygwin的情况下在Windows上使用Expect吗?

时间:2009-06-25 09:06:02

标签: python ruby expect

Expect是一个用于生成子应用程序并控制它们的模块。我对Python和Ruby感兴趣。

6 个答案:

答案 0 :(得分:17)

WExpect for Python

wexpect.py文件中的注释(拼写错误并突出显示已添加)

  

Wexpect 是一个pexpext到Windows的端口。因为用于Windows的python缺乏   要运行的必需模块(pty,tty,select,termios,fctnl和resource)   pexpect,有必要创建一个实现任何功能的后端   那些依赖于这些模块的东西。 Wtty.py 就是这个后端。在   Windows世界控制台不是同质的。他们可以使用低级别或高级别   级别输入和输出功能,并正确处理两种情况   子进程是为Spawn的instacne创建的,带有一个intermidate子进程   可以从控制台连续读取,并通过管道发送该数据   一个wtty的例子。 Spawner.py 可以阅读和管道   数据

     

我尽可能多地保留了完整的代码,并试图留下尽可能多的评论   完整是可能的(特别是对于没有改变的功能)这么多   这些评论会误导他们与特定操作系统的关系   功能。另外,函数sendcontrol和sendeof没有实现   这一次,因为我找不到这些功能的有意义的Windows版本。
  另外,控制台在Windows上没有关联的fild描述符,所以   全局变量child_fd将始终为None。

答案 1 :(得分:6)

winpexpect是Windows的pexpect本机端口。它可以在这里找到:

https://github.com/geertj/winpexpect

答案 2 :(得分:4)

您可以使用Windows CMD提示。

您需要在Windows安装中安装Python。

打开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\f2\65\89\09578bcd0efeabc7e2b0079cd62d3955c1477f2e55aa5031a4
Successfully built pexpect
Installing collected packages: ptyprocess, pexpect
Successfully installed pexpect-4.0.1 ptyprocess-0.5.1

答案 3 :(得分:2)

使用pexpect https://github.com/pexpect/pexpect

“Pexpect是纯Python”,所以它可以在任何地方运行,没有Cygwin,

编辑:pexpect依赖于当前仅适用于Linux的pty模块,因此 Nik 建议你应该使用wexpect,这是一个pexpect的端口

答案 4 :(得分:2)

wexpect的最新工作版本位于http://sage.math.washington.edu/home/goreckc/sage/wexpect/

希望它很快会合并到上游。

答案 5 :(得分:0)

我在Cygwin下成功使用了Pexpect。目前,由于Windows下的POSIX兼容性问题,没有其他办法。

另一件事:WExpect像Pexpect一样,事实上它需要Cygwin! 在这一点上,PExpect是一个更好的选择。