WindowsError:[错误2]系统无法找到pexpect.popen_spawn.PopenSpawn指定的文件

问题描述 投票:3回答:3

我试图打开Windows上使用pexpect.popen_spawn.PopenSpawn作为pexpect.spawn仅在Linux平台上可用的telnet连接。我已经测试了Linux上的pexpect.spawn同一python脚本,它工作正常。但是,我无法打开Windows上使用的telnet pexpect.popen_spawn.PopenSpawn。该生产线pexpect.popen_spawn.PopenSpawn("C:/Windows/System32/telnet.exe <IP> <PORT>")显示以下错误

    console = popen_spawn.PopenSpawn(mycommand)
  File "C:\Python27\lib\site-packages\pexpect\popen_spawn.py", line 45, in __ini
t__
    self.proc = subprocess.Popen(cmd, **kwargs)
  File "C:\Python27\lib\subprocess.py", line 710, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 958, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

现在TELNET.EXE可在C:/在Windows / System32下,我已经成功地测试了使用上的命令提示符下的Telnet相同的命令。我究竟做错了什么?任何想法?我使用Python 2.7

python python-2.7 telnet
3个回答
2
投票

Pexpect的似乎不喜欢的路径反斜杠!例如尝试这个:

mycommand = mycommand.replace("\\", "/")
console = popen_spawn.PopenSpawn(mycommand)

(仅限于Windows的问题)


0
投票

考虑使用你的命令执行的绝对路径。为了找出远程登录所在,运行cmd.exe的以下内容:其中,telnet和应该给你的绝对路径。

后来干脆:

popen_spawn.PopenSpawn( 'C:/在Windows / System32下/远程登录***')


0
投票

我打开pexpect pull请求修复此问题。直到它被接受,使用demented-hedgehog's solution

© www.soinside.com 2019 - 2024. All rights reserved.