完善原帖答案
原帖作者回答了自己的问题,但可执行文件的确切位置更可能是不同的。因此,让我们分解一下为什么他的解决方案有效,这样你也可以将其应用到自己身上。
问题描述
有许多文件位于 /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
与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 -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
正如您所看到的,我有两个bin
文件夹和两个aws
可执行文件。我可能想要使用Python3.6版本。但是,如果我正在为使用Python2.7版本的远程系统进行本地试验和错误工作,我将希望使用该版本。这就是为什么我安装了两个版本的原因。