1

我已经在 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.

有人可以帮忙吗?

4

2 回答 2

0

更新

该问题已在v2.3.4中解决。


简短的:

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

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

细节:

问题的根源在于枚举的which命令(方法)。此方法在文件系统中搜索可执行文件。这是我的wexpect的关键片段:

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

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

于 2019-04-29T12:50:40.547 回答
0

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

失败或可能的许多原因,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 对我有用

于 2016-03-24T04:57:36.540 回答