我正在使用安装在Windows 10
上的cygwin
,并试图从它访问awscli
。
我使用pip install awscli
来安装awscli
。这安装了awscli
。然后,我试图只运行aws
,看看它是否已安装,我得到以下错误:
-bash: /cygdrive/c/Program Files/Anaconda2/Scripts/aws: C:Program: bad interpreter: No such file or directory
我不知道为什么会发生这种情况。如有任何帮助,我将不胜感激。
即使使用最新版本的AWS cli,这仍然是一个问题。因此,经过一些尝试和错误之后,我找到了一个非常好的解决方案,它不会让您切换最喜欢的shell。
首先,确保python在您的PATH上。你可以在系统的任何地方运行python,它就可以工作了。
找到aws脚本并打开它进行编辑(对我来说它位于c:Program FilesPython36Scriptsaws
),并将hashbang(这将是脚本中的第一行)更改为#!python.exe
。对我来说,它被设置为#!c:Program FilesPython36python.exe
。Program Files
中间的空格在该路径被转换为类似Linux的路径时导致了问题。将其更改为#!python.exe
可以避免此问题。
更新AWS cli时,重复此解决方法。
p。您也可以通过将python安装在path中没有空格的文件夹中来避免此问题。这需要重新配置您的系统,所以我没有自己这样做。
我会安装标准python,并确保它与which python
和which pip
一起出现在您的路径中。根据我的经验,像这样的路径问题是由于混合和匹配针对不同平台的可执行文件。某些命令不实现从Windows到Linux再转换路径的功能(似乎您的特定命令在空格上失败了)。
既然你说你是在Windows 10上,如果你有周年纪念版,我会推荐Windows Subsystem for Linux
而不是cygwin。您可能会在WSL上看到更少的Windows问题,因为它使用与Linux上使用的完全相同的ubuntu软件包,而不是cygwin端口,并将它们低级映射到NT内核。
问题来自"Program Files"中有空格。这与cygwin有关(我在windows上使用git bash遇到了同样的错误)。在脚本中,我有这样的内容:
#!/c/Program Files/some_program/executable.exe
用反斜杠或引号转义空格无效。
解决方案是使用DOS的短文件名:- Program ~1 for Program Files
- Program ~2 for "Program Files (x86)"
那么这一行就会变成:
#!/c/Progra~1/some_program/executable.exe
Windows:
cd ..
进入主目录,显示pwd
为/
。现在,cd
到/cygdrive/c/Program Files/Anaconda2/Scripts
现在,运行:python aws configure
的例子:
user@user /cygdrive/c/Program Files/Anaconda2/Scripts
$python aws configure