安装后未将awscli添加到路径

2024-05-14 00:25:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我根据亚马逊官方的指示安装了aws cli。

sudo pip install awscli

但是,aws在我的路径中找不到。安装似乎很成功。有许多文件位于/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli,但是没有名为aws的可执行文件。我的python版本是3.3.4,pip版本是1.5.4,在OS X 10.9上运行这个命令。怎么了?

谢谢!


Tags: installpip文件路径版本awscli官方
3条回答

http://docs.aws.amazon.com/cli/latest/userguide/cli-install-macos.html#awscli-install-osx-path

对于现代macos/OSX,您需要找到~/Library/Python/$version/bin目录并将其添加到$PATH。这将帮助您找到安装aws的位置。

$ ls -d ~/Library/Python/*/bin/aws
/Users/bbronosky/Library/Python/3.6/bin/aws

基于此,我将这一行添加到我的.bashrc

export PATH=$HOME/Library/Python/3.6/bin:$PATH

这在mac上对我很有用:

sudo -H pip install awscli --upgrade --ignore-installed six

改进OP的答案

OP回答了他们自己的答案,但是可执行文件的确切位置很可能不同于相同的位置。所以,让我们分解一下他的解决方案为什么有效,这样你就可以把它应用到你自己身上了。

从这个问题

There are a number of files located at /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli, however there are no executables named aws.

来自the solution

The solution was to add /Library/Frameworks/Python.framework/Versions/3.3/bin to the my PATH.

让我们学点东西

比较这些路径,找出它们的共同点:

/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
/Library/Frameworks/Python.framework/Versions/3.3/bin

请注意,它们在libbin处发散。考虑到OP声明,“没有名为aws的可执行文件。“这给我们带来了我们的第一堂学习课:

  • 可执行文件往往不在lib文件夹中。
  • 查找共享同一血统的bin文件夹。

在这种情况下,我建议通过以下途径查找bin文件夹:

find /Library/Frameworks/Python.framework -type d -name bin

但是,如果您要这样做,您也可以通过以下方式搜索您的可执行文件:

find /Library/Frameworks/Python.framework -type f -perm -100 -name aws
# the `-` in `perm -100` means not an exact match of 100
# but any octal that includes 100

但是等等

OP怎么知道要看他们的/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/

最简单的答案也是我们的下一课:

  • 询问您的python在哪里安装的东西。

我是这样做的:

$ python -c 'import awscli; print(awscli)'
<module 'awscli' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/awscli/__init__.pyc'>

$ python3 -c 'import awscli; print(awscli)'
<module 'awscli' from '/System/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/awscli/__init__.py'>

我有两条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

如您所见,我有2个bin文件夹和2个aws可执行文件。我可能想用Python3.6版本。但是,如果我正在为使用Python2.7版本的远程系统进行本地尝试和错误工作,我将要使用它。这正是我安装2个版本的原因。

相关问题 更多 >