【问题标题】:Running wexpect on windows在 Windows 上运行 wexpect
【发布时间】:2012-07-24 01:22:54
【问题描述】:

我已经在 Windows 7 上安装了 wexpect。现在,当我尝试运行任何命令时,我收到以下错误。我正在使用 MKS 工具包,所以 ls 是一个有效的命令。

>>> import pexpect
>>> pexpect.run('ls ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\winpexpect-1.5-py2.7.egg\pexpect.py", line
219, in run
child = spawn(command, maxread=2000, logfile=logfile, cwd=cwd, env=env)
File "C:\Python27\lib\site-packages\winpexpect-1.5-py2.7.egg\pexpect.py", line
429, in __init__
self._spawn (command, args)
File "C:\Python27\lib\site-packages\winpexpect-1.5-py2.7.egg\pexpect.py", line
516, in _spawn
raise ExceptionPexpect ('The command was not found or was not executable: %s
.' % self.command)
pexpect.ExceptionPexpect: The command was not found or was not executable: ls.

有人可以帮忙吗?

【问题讨论】:

  • 您是否将ls 的位置添加到您的路径中?
  • 是的,它在我的系统路径中。 python有什么特殊的路径吗?
  • 标题指的是 Wexpect,但显示的代码和标签表明这不是 Wexpect 而是 Pexpect,虽然它们在某些方面相似,但它们在 Windows 上的工作情况应该是它们的最大的不同。见stackoverflow.com/questions/1042778/…

标签: python pexpect wexpect


【解决方案1】:

回复很晚,但我最近也遇到了这个问题。

许多失败的原因或可能,wexpect.py 需要修改(至少对我而言)

请检查在 wexpect.py 文件同一目录下生成的 pexpect_error.txt 文件。

它派生了“python.exe”,因此“python.exe”必须在路径中(不允许使用其他 exe 名称)。

执行 py 脚本时,必须与 wexpect.py 位于同一目录(lib 文件名必须为 wexpect.py 而不是 pexpect.py)。

cmd(扩展名为 .exe/.com/.bat)必须在您的 windows/shell 命令提示符下运行。检查(例如,实际上在 Windows 中,当我们运行“ls”时,它实际上正在运行 ls.exe/com,在 py 脚本中,称为“ls.exe”)

最后但同样重要的是:在我的情况下,用于创建 Window OS 的控制台窗口失败(从 pexpect_error.txt 中找到),因此我在下面进行了更改

第 2397 行,使矩形的 Y 坐标变小而不是 70,例如 24 对我有用

【讨论】:

    【解决方案2】:

    更新

    问题已在v2.3.4 中解决。


    简介:

    在可执行文件末尾添加.exe

    >>> import pexpect
    >>> pexpect.run('ls.exe')
    

    详情:

    问题的根本原因放在枚举的which命令(方法)中。此方法在文件系统中搜索可执行文件。这是来自我的wexpect 的关键 sn-p:

    # ...
    for path in pathlist:
        f = os.path.join(path, filename)
        if os.access(f, os.X_OK):
            return f
    return None
    # ...
    

    此代码将run() 的参数附加为filename,如果它是有效且可执行的路径,则返回它。请注意,Windows(与 Linux 不同)可执行文件以 *.exe 结尾

    【讨论】:

      猜你喜欢
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 2011-05-05
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多