【发布时间】:2010-11-05 18:42:56
【问题描述】:
Expect 是一个用于生成子应用程序并控制它们的模块。我对 Python 和 Ruby 很感兴趣。
【问题讨论】:
Expect 是一个用于生成子应用程序并控制它们的模块。我对 Python 和 Ruby 很感兴趣。
【问题讨论】:
wexpect.py 文件中的注释(错字未更改并添加了突出显示)
Wexpect 是 pexpext 到 Windows 的一个端口。由于适用于 Windows 的 python 缺乏 运行所需的模块(pty、tty、select、termios、fctnl 和 resource) pexpect,有必要创建一个实现任何功能的后端 使用的依赖于这些模块。 Wtty.py 就是这个后端。在 Windows 世界控制台不是同质的。他们可以使用低电平或高电平 水平输入和输出功能,并正确处理这两种情况 子进程是为 Spawn 的实例创建的,带有一个中间子进程 可以从控制台连续读取,并通过管道发送该数据 到wtty的一个实例。 Spawner.py 负责读取和管道 数据。
我尽可能多地保留完整的代码,并尝试保留尽可能多的 cmets 完整是可能的(尤其是对于没有改变的功能)这么多 的 cmets 在与特定操作系统的关系中会产生误导 功能。此外,函数 sendcontrol 和 sendeof 未实现 这一次,因为我找不到这些函数的有意义的 Windows 版本。
此外,控制台在 Windows 上没有关联的字段描述符,因此 全局变量 child_fd 将始终为 None。
【讨论】:
winpexpect。但是wexpect 是一个不同的模块。
winpexpect 是 pexpect 到 Windows 的本机端口。可以在这里找到:
【讨论】:
您可以使用 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
【讨论】:
wexpect 的最新工作版本位于http://sage.math.washington.edu/home/goreckc/sage/wexpect/
希望它很快会在上游合并。
【讨论】:
使用 pexpect https://github.com/pexpect/pexpect
“Pexpect 是纯 Python”,因此它可以在任何地方运行,也无需 Cygwin,
编辑:pexpect 依赖于 pty 模块,该模块目前仅适用于 Linux,因此 Nik 建议您应该使用 wexpect,它是 pexpect 的一个端口
【讨论】:
我已经在 Cygwin 下成功使用了 Pexpect。由于Windows下POSIX的兼容性问题,目前没有其他办法。
另一件事:WExpect 的工作方式与 Pexpect 类似,实际上它需要 Cygwin! 此时,PExpect 是更好的选择。
【讨论】: