我已经在windows7上安装了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.
有人可以帮忙吗
答案 0 :(得分: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命令提示符下运行。检查一下(例如,当我们运行'ls'时实际在Windows中,它实际上运行ls.exe / com,在py脚本中,提到'ls.exe')
最后但并非最不重要:在我的情况下,Window OS创建的控制台窗口失败(从pexpect_error.txt找到),因此我在下面更改了
第2397行,使得矩形的Y坐标小而不是70,例如24为我工作
答案 1 :(得分:0)
简介:
在可执行文件的末尾添加self.
:
.exe
详细信息:
问题的根本原因存在于枚举的>>> import pexpect
>>> pexpect.run('ls.exe')
命令(方法)中。此方法在文件系统中搜索可执行文件。这是我的wexpect中的关键片段:
which
此代码将# ...
for path in pathlist:
f = os.path.join(path, filename)
if os.access(f, os.X_OK):
return f
return None
# ...
的参数附加为run()
,如果它是有效且可执行的路径,则将其返回。请注意,Windows(与Linux不同)可执行文件以filename
ps .:我希望可以在wexpect的python-3.x变体中对其进行修复。