无法从cygwin运行'aws'

时间:2016-10-24 05:03:41

标签: bash amazon-web-services cygwin aws-cli

我正在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

我不确定为什么会这样。在这方面的任何帮助都是非常苛刻的。

4 个答案:

答案 0 :(得分:3)

即使使用最新版本的AWS cli,这仍然是一个问题。因此,经过反复试验,我发现了一个很好的解决方法,不会让您切换自己喜欢的shell。

首先,确保python在您的PATH上。那可以从系统中的任何地方运行python,并且可以运行。

找到aws脚本并将其打开以进行编辑(对我而言它位于c:\Program Files\Python36\Scripts\aws中),并将hashbang(这将是脚本的第一行)更改为#!python.exe。对我来说,它设置为#!c:\Program Files\Python36\python.exe。当该路径转换为类似Linux的路径时,Program Files中间的空格引起了问题。将其更改为#!python.exe可以避免问题。

更新AWS CLI时,请重复解决方法。

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

答案 1 :(得分:1)

我会安装标准版python,并确保它在"Column1" 'The Quick Brown Cat' 'The Quick Brown Dog' which python的路径中首先出现。这样的路径问题是由于我的经验中混合和匹配针对不同平台的可执行文件。某些命令没有实现convert paths从Windows到Linux并返回的功能(看起来您的特定命令在空格上失败)。

既然你说你使用的是Windows 10,如果你有周年纪念版,我会建议你{9}}使用cygwin。您可能会在WSL上看到更少的Windows问题,因为它使用与您在Linux上使用的完全相同的ubuntu软件包而不是cygwin端口和maps them low level到NT内核。

答案 2 :(得分:1)

问题来自“程序文件”,其中有空格。这与cygwin有关(我在Windows上遇到了git bash相同的错误)。在脚本中,我有这样的内容:

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

用反斜杠或引号将空格转义不起作用。

解决方案是使用DOS' short filename

  • “程序文件”的Progra〜1
  • 用于“程序文件(x86)”的Progra〜2

所以我的行将变成:

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

答案 3 :(得分:0)

在Windows中:

cd ..转到显示pwd/的主目录。 现在,cd/cygdrive/c/Program\ Files/Anaconda2/Scripts

现在,运行:python aws configure

示例:

user@user /cygdrive/c/Program Files/Anaconda2/Scripts 
$python aws configure