AWS CLI $PATH 设置

Posted

技术标签:

【中文标题】AWS CLI $PATH 设置【英文标题】:AWS CLI $PATH Settings 【发布时间】:2014-12-21 20:16:31 【问题描述】:

我正在关注AWS CLI Setup guide。我已经成功地在我的 Mac OS X 终端上安装了该工具,输出如下:

Running cmd: /usr/bin/python virtualenv.py --python /usr/bin/python /Users/fr/.local/lib/aws
Running cmd: /Users/fr/.local/lib/aws/bin/pip install --no-index --find-links file:///Users/fr/Downloads/awscli-bundle/packages awscli-1.5.3.tar.gz
You can now run: /Users/fr/.local/lib/aws/bin/aws --version

我的问题是我必须输入完整路径 /Users/fr/.local/lib/aws/bin/aws 才能执行任何 aws 命令。按照指南的最后一步,我应该可以直接执行 aws 命令,而无需输入执行的绝对路径。

当我尝试仅使用 aws 时,我得到以下输出:

aws --version                                                                                         ⏎
command not found: aws

我按照说明确保 ~/bin 在我的 PATH 环境中并且我可以看到没有输出,因此我执行了导出 PATH=~/bin:$PATH 命令将 ~/bin 添加到 $PATH。但这并没有什么不同。 aws 命令不能直接工作。

有人可以告诉我可能出了什么问题吗?

【问题讨论】:

【参考方案1】:

这是在 mac OSX 上安装 AWS cli 的三个步骤(curl 或 wget)第三步将正确设置路径

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

另一个最简单的方法是使用自制软件

brew install awscli

如果你想要开发版本,你可以做

brew install awscli --HEAD

【讨论】:

brew install awscli 是我的最佳选择 omg.. 经过 1 个小时的尝试让 cli 正常工作,brew install awscli 工作起来就像一个魅力。谢谢! 谢谢! Brew 因权限问题而失败 Error: An unexpected error occurred during the 'brew link' step,但 curl 有效。 brew install awscli 是最直接的一个 请注意文档中的说明:Package managers such yum, apt-get, or Homebrew for macOS are often behind several versions of the AWS CLI,因此请务必在安装后检查版本。【参考方案2】:

这对我有用(注意:将 2.7 更改为您的特定 Python 版本):

export PATH=~/Library/Python/2.7/bin/:$PATH

您可能希望将其添加到 .bash_profile 的末尾,使用:

sudo nano ~/.bash_profile

【讨论】:

【参考方案3】:

当你运行命令时: pip3 install awscli --upgrade --user

仔细观察 aws cli 工具的安装位置,您可以在终端日志中看到路径,在我的情况下,我得到了这样的信息:

awscli in ./Library/Python/3.6/lib/python/site-packages

现在您应该将相同的路径添加到您的 .bash_profile 但在 bin 文件夹中(从 lib 路径中删除,而不是放置您的 bin 路径),如下所示:

export PATH=/Users/xuser/Library/Python/3.6/bin/:$PATH

【讨论】:

你的帖子对我有帮助。 这让我很开心 在 python 2.7 上,它被添加到 ./Library/Python/2.7/bin 对我来说最好的答案。仅仅使用 brew 来解决问题是没有意义的。最好知道它为什么坏了!谢谢胡安【参考方案4】:

我使用Homebrew 安装了 AWS CLI,我对结果非常满意。只需输入:

$ brew install awscli

安装 brew 之后。

注意,AWS CLI installation page 上有以下免责声明:

awscli 包可能在其他包管理器(例如 APT、yum 和 Homebrew)的存储库中可用,但不能保证是最新版本。

也就是说,我没有发现这有什么问题,awscli.rb 已经经常更新以匹配最新版本。


更新:GitHub issue 建议应在 AWS CLI 安装说明中添加 Homebrew 作为替代方案。这个问题后来被这个UserVoice feature request关闭了。

【讨论】:

【参考方案5】:

这也发生在我身上,我不想再安装 brew,因为一切都运行良好。我还按照 AWS 网站上的“教程”进行操作,但在导出路径步骤中遇到了问题。

基本上,它添加了一个不同的 python 文件夹作为下载 awscli 的文件夹。所以而不是export PATH=~/.local/bin:$PATH 他们建议我使用磁盘的完整路径: export PATH=/Users/abc/Library/Python/3.6/bin/:$PATH

【讨论】:

【参考方案6】:

试试:

PATH=/Users/fr/.local/lib/aws/bin:$PATH 

(放入.profile文件)

还可以尝试使用 homebrew 安装 aws cli。它会自动将其添加到您的路径中。

【讨论】:

【参考方案7】:

有时,当类路径在 mac 上搞砸时 - 您总是可以运行以在本地修复 aws cli

$ brew install awscli

这将重用和更新现有的包并设置正确的类路径

【讨论】:

【参考方案8】:

我刚刚遇到了同样的错误,我可以通过在我的 .bash_profile 文件中添加以下行来解决它:

export PATH=~/Library/Python/2.7/bin/:$PATH

请检查 Python 的版本,因为它在您的系统上可能会略有不同。这样可以避免将您的用户名文件夹添加到 .bash_profile 文件中。

【讨论】:

【参考方案9】:

如果您的系统上有 Anaconda 版本的 python,请使用 conda 安装 awscli:

conda install -c conda-forge awscli

【讨论】:

这对我有用,但我不知道为什么。我的 conda 环境已停用,我使用 pip3 作为安装命令,所以我预计 conda 根本不会出现在图片中。你能解释一下为什么会这样吗?【参考方案10】:

确保python全局安装,步骤如下:

在 AWS 方面:

转到亚马逊 AWS 中心 -> 服务 -> 身份和访问管理 (IAM) -> 用户 -> 找到您的用户并点击它 -> 选择安全 凭据选项卡 -> 创建访问密钥

安装:在命令行/bash

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

可选:如果尚未找到 aws 版本,请在您的 bash 配置文件中设置 aws 路径。

vim ~/.bash_profile
#paste this line
PATH=$PATH:/usr/local/bin/aws

配置:(最后一步)如下配置您的凭据

aws configure

填写您从 aws 网站获得的属性并连接您的帐户。附上此步骤的示例。

AWS 访问密钥 ID [无]:abcd

AWS 秘密访问密钥 [无]:zyx123!@#

默认区域> 名称 [无]:us-east-1

默认输出格式[无]:json

祝你好运!

【讨论】:

【参考方案11】:

我个人在使用 aws CodeBuild 时遇到了同样的问题 - 我无法使用 aws cli。我通过在我的 docker 映像上全局安装 aws 来解决它(而不是在本地安装给用户)。

RUN pip install awscli --upgrade 

(instead of RUN pip install awscli --upgrade --user)

它对我有用,如果这可以帮助任何人!

【讨论】:

【参考方案12】:

我最终做了与 Piotr 相同的事情,很高兴了解如何在没有 3rd 方软件的情况下更新您的路径。然而,随着 3rd 方软件的发展,Homebrew 非常棒,使用它来将您的依赖符号链接控制在​​一个地方是一件好事。 mac 上事实上的 pkg mgr。

【讨论】:

【参考方案13】:

这似乎是虚拟环境方法: https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-virtualenv.html

不激活 virtualenv: source ~/cli-ve/bin/activate 在文档示例中。

【讨论】:

【参考方案14】:

看看https://docs.aws.amazon.com/cli/latest/userguide/install-bundle.html上的注释

默认情况下,安装脚本在 Python 的系统默认版本下运行。如果您已安装 Python 的替代版本并希望使用它来安装 AWS CLI,请通过 Python 可执行文件的绝对路径运行具有该版本的安装脚本。

对于运行安装可执行文件的步骤

而不仅仅是做:

$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

例如找出你的 python 的安装位置

$ which python

然后使用路径来安装可执行文件之类的

$ sudo <path from executing which python> awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

以上应该可以解决问题。

【讨论】:

【参考方案15】:

我尝试使用 CLI

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

$ unzip awscli-bundle.zip

$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

【讨论】:

以上是关于AWS CLI $PATH 设置的主要内容,如果未能解决你的问题,请参考以下文章

python 从AWS CLI凭据设置AWS环境(密钥ID,密钥和令牌)

AWS S3 CLI - 如何使用存储桶上设置的所有当前策略获取 JSON?

使用 AWS CLI 上传到 S3 时如何设置 Content-Type?

是否可以使用 AWS CLI 等到实例“在线”并完成 opsworks 的设置/配置步骤?

如何从无服务器 cli 设置 Cloudformation 完全访问权限

AWS SAM CLI 全新安装引发错误 - dyld:未加载库:@executable_path/../.Python