awscli在安装后未添加到路径中

时间:2014-04-28 03:44:05

标签: python macos amazon-web-services pip

我根据亚马逊的官方指示安装了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上运行此命令。可能有什么不对?

谢谢!

16 个答案:

答案 0 :(得分:91)

改善OP的答案

OP回答了他们自己的答案,但可执行文件的确切位置更可能与它们相同。所以,让我们分解为什么他的解决方案有效,所以你可以将它应用到自己身上。

从问题

  

有许多文件位于/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli,但是没有名为aws的可执行文件。

来自the solution

  

解决方法是将/Library/Frameworks/Python.framework/Versions/3.3/bin添加到我的路径中。

让我们学点东西

比较这些路径以找到它们的共性:

/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'>

我有2个蟒蛇,他们都没有使用与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个版本的原因。

答案 1 :(得分:38)

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

对于Modern 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

答案 2 :(得分:37)

这对我来说很有用:

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

答案 3 :(得分:10)

解决方案是添加

/Library/Frameworks/Python.framework/Versions/3.3/bin

到我的路径。

答案 4 :(得分:7)

在ubuntu上并安装了不带sudo的pip3时,要添加到我的路径的正确位置是~/.local/bin

export PATH=$HOME/.local/bin:$PATH

答案 5 :(得分:3)

我从OSX 10.7升级到OSX 10.9,之后,我的aws安装不再有效。

我发现了这样的错误:

$ pip
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
working_set.require(__requires__)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
needed = self.resolve(parse_requirements(requirements))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: pip==1.5.5

操作系统升级已更改权限的解决方案。

赠品线索:

sudo pip&lt; --- working

pip&lt; ---失败

所以我这样做了:

sudo chmod -R a+r /Library/Python/

然后,我可以再次使用aws命令。

不确定这是否会对其他人有所帮助,但我想把它扔进去。

答案 6 :(得分:2)

可以使用pip show awscli查找安装位置。

$ pip show awscli
Name: awscli
Version: 1.16.94
Summary: Universal Command Line Environment for AWS.
Home-page: http://aws.amazon.com/cli/
Author: Amazon Web Services
Author-email: UNKNOWN
License: Apache License 2.0
Location: /root/.local/lib/python2.7/site-packages
Requires: s3transfer, colorama, rsa, docutils, botocore, PyYAML
Required-by:

答案 7 :(得分:1)

在virtualenv中安装时:'pip install awscli'(不带sudo)在OS X上工作正常;但不是在CentOS版本6.6上,例如'哪个'找不到任何东西。解决方案:

chmod u+x /PATH-TO-YOUR-VIRTUALENV/bin/aws

答案 8 :(得分:1)

如果您拥有管理员权限,请直接编辑paths文件。

如果您没有管理员权限,请务必使用最佳答案,但如果您这样做,我强烈建议您直接编辑位于paths的{​​{1}}个文件。

使用您喜欢的编辑器,只需将所需路径粘贴到新行:

示例/etc/paths文件:

paths

粘贴在顶部或底部,或者按照您希望搜索二进制文件的位置的顺序(如果存在具有重复名称的二进制文件)。

如果您编写错误的导出语句,使用/usr/local/bin /usr/bin /bin /usr/sbin /sbin /Users/username/Library/Python/3.6/bin #new path added here at bottom of file 文件可以省去记住串联语法或潜在问题的麻烦。

答案 9 :(得分:1)

我通常要做的是将可执行文件复制到 / usr / local / bin

cp $(find / -name aws) /usr/local/bin

答案 10 :(得分:1)

export PATH=/Users/{Computer Name}/Library/Python/2.7/bin:$PATH

答案 11 :(得分:0)

Windows可能是这里的少数,但下面添加到我的PATH为我工作。作为参考,我通过pip安装了CLI:

C:\Python27\Scripts

答案 12 :(得分:0)

我在Windows 10上遇到类似的问题。我必须在下面的PATH变量中添加

对于 Python

C:\Users\kumar\AppData\Local\Programs\Python\Python37\  

对于 PIP

C:\Users\kumar\AppData\Local\Programs\Python\Python37\Scripts\

要使 awscli 正常工作:

C:\Users\kumar\AppData\Roaming\Python\Python37\Scripts

答案 13 :(得分:0)

检查您的python版本,但我猜您正在使用python 3.3

  

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

答案 14 :(得分:0)

另一种方法是通过https://cloudacademy.com/blog/how-to-use-aws-cli/上的方法安装aws-cli软件包。这对我有用:)

答案 15 :(得分:-1)

只需下载并安装MSI安装程序(64位或32位) Install or update the AWS CLI version 2 on Windows using the MSI installer

安装后,您可能会得到错误“'aws'”未被识别为内部或外部命令,可操作程序或批处理文件。“

只需检查环境变量,变量名称必须为'PATH',并输入值“ C:\ Program Files \ Amazon \ AWSCLIV2” 关闭命令提示符窗口,然后重新打开它。该问题将得到解决。