无法从cygwin中运行 "aws"。

问题描述 投票:16回答:4

我用的是 cygwin 装在 Windows 10 并试图访问 awscli 从它。

我用 pip install awscli 安装 awscli. 此安装 awscli. 然后我试着只运行 aws 看看它是否已经安装,我得到了以下错误。

-bash: /cygdrive/c/Program Files/Anaconda2/Scripts/aws: C:\Program: bad interpreter: No such file or directory

我不知道为什么会这样 任何这方面的帮助将是非常感激的。

bash amazon-web-services cygwin aws-cli
4个回答
10
投票

即使使用最新版本的AWS cli,这仍然是一个问题。所以经过一些试验和错误,我找到了一个非常好的工作方法,不会让你切换你最喜欢的shell。

首先,确保python在你的PATH上。这是从系统中的任何地方,你可以只运行python,它的工作。

找到aws脚本并打开它进行编辑(对我来说它位于 c:\Program Files\Python36\Scripts\aws),并将哈希邦(这将是脚本中的第一行)改为 #!python.exe. 对我来说,它被设置为 #!c:\Program Files\Python36\python.exe. 中间的那块地方 Program Files 导致了该路径被转换为类似Linux的路径时的问题。把它改成 #!python.exe 避开了这个问题。

当你更新AWS cli的时候,重复这个变通方法。

PS.你也可以通过将python安装在某个没有空格的文件夹中来避免这个问题。你也可以通过将python安装在某个路径中没有空格的文件夹中来避免这个问题。这需要重新配置你的系统,所以我自己没有这么做。


2
投票

我会安装标准的 蟒蛇 并确保它在你的道路上首先出现的是与 which pythonwhich pip. 根据我的经验,这样的路径问题是由于针对不同平台的可执行文件混搭造成的。某些命令没有实现以下功能 转换路径 从Windows到Linux,然后再回来(看来你的特定命令在空格上失败了)。

由于您说您使用的是Windows 10,如果您有周年纪念版,我建议您使用 Windows Subsystem for Linux 而不是cygwin。在 WSL 上,您可能会看到较少的 Windows 问题,因为它使用的是和您在 Linux 上使用的完全相同的 ubuntu 软件包,而不是 cygwin port 和 将它们映射到低层 到NT内核。


0
投票

问题来自于 "Program Files "有一个空格,这与cygwin有关(我在windows上用git bash遇到同样的错误)。这与cygwin有关(我在windows上用git bash也遇到了同样的错误)。在一个脚本中,我有这样的东西。

#!/c/Program Files/some_program/executable.exe

用反斜杠或引号来消除空格都不行。

解决方法是使用 DOS的简写文件名:

  • Progra~1为 "程序文件"。
  • Progra~2为 "程序文件(x86)"

所以我的行将变成。

#!/c/Progra~1/some_program/executable.exe

-1
投票

在Windows中

cd .. 转到home目录,其中显示 pwd 作为 /.现在 cd/cygdrive/c/Program\ Files/Anaconda2/Scripts

现在,运行。python aws configure

例子:

user@user /cygdrive/c/Program Files/Anaconda2/Scripts 
$python aws configure
© www.soinside.com 2019 - 2024. All rights reserved.