我根据亚马逊的官方指示安装了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上运行此命令。有什么事吗
谢谢!
我根据亚马逊的官方指示安装了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上运行此命令。有什么事吗
谢谢!
Answers:
OP回答了他们自己的问题,但是可执行文件的确切位置与其相同的可能性更大。因此,让我们细分一下为什么他的解决方案有效,以便您可以将其应用于自己。
位于的文件很多
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
,但是没有名为aws的可执行文件。
解决的办法是添加
/Library/Frameworks/Python.framework/Versions/3.3/bin
到我的PATH。
比较这些路径以找到它们的共性:
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/awscli
/Library/Frameworks/Python.framework/Versions/3.3/bin
请注意,它们在lib
vs.处有所分歧bin
。并考虑到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 -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个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个版本的原因。
--user
安装而不是sudo
安装。这就是为什么python -c 'import awscli; print(awscli)'
如此重要的原因。它将检测到该路径。所有的SO答案都应解释“如何获得答案”,而不是“这对我有用”。不重要。我意识到有些人不知道如何进行这项研究。在这种情况下,他们的答案可能会帮助其他人加入并扩大其范围,使其更具通用性。这是一个很好的例子。
这在Mac上对我有用:
sudo -H pip install awscli --upgrade --ignore-installed six
anaconda3
来自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
解决方案是添加
/Library/Frameworks/Python.framework/Versions/3.3/bin
到我的路径。
可以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:
我从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 chmod -R a+r /Library/Python/
然后,我可以再次使用aws命令。
不知道这是否对其他人有帮助,但我想我会把它扔进去。
paths
如果您具有管理员权限,则直接编辑文件。如果您没有管理员权限,绝对可以使用最高级的答案,但是如果这样做,我强烈建议您直接编辑paths
位于的文件/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
粘贴在顶部或底部,或按照您希望搜索二进制文件的位置的任何顺序粘贴(如果存在名称重复的二进制文件)。
使用该paths
文件可以省去记住连接语法的麻烦,如果您编写错误的导出语句,也可以避免潜在的麻烦。
我通常要做的是将可执行文件复制到/ usr / local / bin
cp $(find / -name aws) /usr/local/bin
/usr/bin
我那里复制了。
另一种方法是通过https://cloudacademy.com/blog/how-to-use-aws-cli/中找到的方法安装aws-cli软件包。这对我有用:)
export PATH=/Users/{Computer Name}/Library/Python/2.7/bin:$PATH
只需下载和MSI安装程序(64或32位) ,即可使用MSI安装程序在Windows上安装或更新AWS CLI版本2。
安装后,您可能会收到错误“'aws'”,未被识别为内部或外部命令,可操作程序或批处理文件。”
只需检查环境变量,变量名必须为'PATH'并输入值“ C:\ Program Files \ Amazon \ AWSCLIV2”,关闭命令提示符窗口并重新打开它。该问题将得到解决。