我用的是 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
我不知道为什么会这样 任何这方面的帮助将是非常感激的。
即使使用最新版本的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安装在某个路径中没有空格的文件夹中来避免这个问题。这需要重新配置你的系统,所以我自己没有这么做。
我会安装标准的 蟒蛇 并确保它在你的道路上首先出现的是与 which python
和 which pip
. 根据我的经验,这样的路径问题是由于针对不同平台的可执行文件混搭造成的。某些命令没有实现以下功能 转换路径 从Windows到Linux,然后再回来(看来你的特定命令在空格上失败了)。
由于您说您使用的是Windows 10,如果您有周年纪念版,我建议您使用 Windows Subsystem for Linux
而不是cygwin。在 WSL 上,您可能会看到较少的 Windows 问题,因为它使用的是和您在 Linux 上使用的完全相同的 ubuntu 软件包,而不是 cygwin port 和 将它们映射到低层 到NT内核。
问题来自于 "Program Files "有一个空格,这与cygwin有关(我在windows上用git bash遇到同样的错误)。这与cygwin有关(我在windows上用git bash也遇到了同样的错误)。在一个脚本中,我有这样的东西。
#!/c/Program Files/some_program/executable.exe
用反斜杠或引号来消除空格都不行。
解决方法是使用 DOS的简写文件名:
所以我的行将变成。
#!/c/Progra~1/some_program/executable.exe
在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