首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使有ssh.exe的完整路径,Python也无法在使用subprocess.run的Windows中找到ssh二进制文件

即使有ssh.exe的完整路径,Python也无法在使用subprocess.run的Windows中找到ssh二进制文件
EN

Stack Overflow用户
提问于 2020-02-14 05:34:46
回答 1查看 205关注 0票数 2

当我在powershell中运行scp.exe时,它显示了用法。但是python告诉我们用os.path.isfile("C:\\Windows\\System32\\OpenSSH\\scp.exe")测试这个文件是不存在的。我所有通过subprocess.run调用scp的脚本以前都是有效的。现在它的结果是:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Alyson\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 489, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Users\Alyson\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Users\Alyson\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 1307, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] O sistema não pode encontrar o arquivo especificado

我最近做的唯一一件事就是安装了Windows Update (KB4537759,KB4532693),并将Python3.7升级到3.8。我甚至试图将shell=true传递给subprocess.run

scp existance tests

EN

回答 1

Stack Overflow用户

发布于 2020-02-14 19:41:56

我发现是什么导致了这个问题。它是Python的体系结构版本。

我的Windows是64位的。我已经下载了32位和64位的嵌入式版本。64位版本找到了scp.exe可执行文件,如下所示:

  • MSC v.1916 32位(英特尔):

代码语言:javascript
运行
复制
PS C:\Users\Alyson\Documents\0\Xpriment\python32> .\python                                    Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 22:39:24) [MSC v.1916 32 bit (Intel)] on win32
>>> import shutil; shutil.which("scp")
>>>

  • MSC v.1916 64位(AMD64):

代码语言:javascript
运行
复制
PS C:\Users\Alyson\Documents\0\Xpriment\python64> .\python                                            Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
>>> import shutil; shutil.which("scp")
'C:\\Windows\\System32\\OpenSSH\\scp.EXE'
>>> 

我之前安装的Python是64位的。由于在Visual Studio代码中显示未安装解释器的消息,我单击了链接并重新安装了解释器,但该链接指向32位版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60216817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档