awscli安装后未添加到路径中
问题出现的原因是在安装完awscli之后,没有将其添加到系统的环境变量中,导致无法在命令行中直接使用aws命令。
解决方法是根据文档中的提示,找到安装awscli的目录,并将该目录添加到系统的环境变量中。
在现代的macos/OSX系统中,可以通过以下步骤来解决这个问题:
1. 打开终端,输入以下命令:
$ ls -d ~/Library/Python/*/bin/aws
该命令将显示awscli安装的目录,例如:
/Users/bbronosky/Library/Python/3.6/bin/aws
2. 在终端中输入以下命令,将上一步中找到的目录添加到环境变量中:
$ echo 'export PATH=$HOME/Library/Python/3.6/bin:$PATH' >> ~/.bashrc
这将在你的用户目录下的.bashrc文件中添加一行代码,将awscli的安装目录添加到环境变量中。
3. 重启终端或者执行以下命令使修改生效:
$ source ~/.bashrc
现在,你应该能够在命令行中直接使用aws命令了。
希望以上内容对你解决问题有所帮助。
问题:安装完awscli后,执行aws命令时提示找不到命令。
原因:在安装awscli后,没有将其添加到系统的环境变量中。
解决方法:将awscli的执行路径添加到系统的环境变量中。
详细解释:
在问题中,提到了一些文件的路径,但是具体的可执行文件的位置可能会有所不同。所以我们需要弄清楚为什么这个解决方法能够解决问题,并且将其应用到自己的情况中。
根据问题提供的信息,我们可以看到在路径“/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli”下有一些文件,但是没有名为aws的可执行文件。
解决方法是将“/Library/Frameworks/Python.framework/Versions/3.3/bin”添加到系统的环境变量中。
我们可以比较一下这两个路径的共同之处,发现它们在“lib”和“bin”这两个文件夹上有所不同。根据问题中提到的“没有名为aws的可执行文件”,我们可以得出以下两个结论:
- 可执行文件通常不会在“lib”文件夹下。
- 查找具有共同源的“bin”文件夹。
在这种情况下,我们可以通过以下命令来查找“bin”文件夹:
find /Library/Frameworks/Python.framework -type d -name bin
如果你要这样做,你可能会直接通过以下命令来搜索可执行文件:
find /Library/Frameworks/Python.framework -type f -perm -100 -name aws
接下来是一个问题:OP是如何知道要在“/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/”下查找的呢?
最简单的答案也是我们要学习的下一个方法:
- 向Python询问安装路径。
这是我询问Python安装路径的方法:
$ python -c 'import awscli; print(awscli)'$ python3 -c 'import awscli; print(awscli)'
我有两个Python版本,它们都使用不同的路径,与OP的路径也不相同。
根据我们所学的知识,我们可以应用到自己的情况中:
$ find /System/Library/Frameworks/Python.framework -type d -name bin /System/Library/Frameworks/Python.framework/Versions/2.7/bin /System/Library/Frameworks/Python.framework/Versions/3.6/bin $ find /System/Library/Frameworks/Python.framework -type f -perm -100 -name aws /System/Library/Frameworks/Python.framework/Versions/2.7/bin/aws /System/Library/Frameworks/Python.framework/Versions/3.6/bin/aws
可以看到,我有两个“bin”文件夹和两个“aws”可执行文件。我可能想要使用Python3.6版本。然而,如果我在本地进行远程系统的试验和错误工作时,我可能希望使用Python2.7版本。这也是为什么我安装了两个版本的原因。
这是我在Stack Overflow上找到的最好的答案之一。谢谢!
你的感受正是我在stackoverflow.com/a/41994024/117471中添加第4步的原因。当你想要快速解决问题时,阅读这样的列表可能很困难。但是,这些只适用于与作者完全相同的系统。我在尝试了所有我能找到的答案但都不起作用后才写这样的答案。这些答案被链接到我的DevOps团队手册中,因为我们有很多非标准系统需要支持。我编写的答案适用于所有这些系统。希望它也适用于更多人。很抱歉它对你不起作用。休息一下吧。
非常感谢你的答案,当有人抽出宝贵的时间为了共同的利益而详细解释事情时,这体现了人性的美好。
如果使用pip和--user进行安装,则可能会出现在/Users/foo.bar/Library/Python/3.5/bin
中。
这是正确的,而且新的MacOS安全模型希望使用--user
安装而不是sudo
安装。这就是为什么python -c 'import awscli; print(awscli)'
非常重要。它会检测到这个路径。所有的Stack Overflow答案都应该解释“如何获取答案”,而不是“这对我有效”。并不是要批评。我意识到有些人不知道如何进行这样的研究。在这种情况下,他们的答案可能会帮助其他人进来并将其扩展为更通用的答案。这是一个很好的例子。
根据我的具体经验,你不应该像上面那样使用find
命令,而应该使用find <来自Python hack命令行的路径> -name aws
。