如果您安装aws
的easy_install
是 Python 2.6 附带的,它将被硬编码为使用 Python 2.6——它的第一行将是这样的:
#!/usr/bin/python2.6
这个shebang 行意味着脚本将使用/usr/bin/python2.6
. 安装 Python 3.3 不会改变/usr/bin/python2.6
. PATH
它与 上的内容或第一个被称为python
的内容无关PATH
。PATH
如果脚本/usr/bin/env
在 shebang 行上使用,则唯一起作用。当然/usr/bin/env python2.6
仍然会找到 Python 2.6。事实上,甚至/usr/bin/env python
仍然会找到 Python 2.6,因为 3.3 没有任何名称python
,只有python3
.
同时,即使您设法破解它以使用 Python 3.3 运行(例如,通过将第一行更改为/Library/Frameworks/Python.framework/Versions/3.3/bin/python3.3
or /usr/bin/env python3
),这只会使其完全崩溃。该aws
脚本要求将aws
包安装到您的站点包中。您已将它们安装到 2.6 站点包中,但未安装到 3.3 站点包中。(最重要的是,许多包为 Python 2.x 和 3.x 安装了不同的代码,因此 2.6 脚本可能无法与 3.3 包一起使用,即使它在那里。)
无论如何,解决这个问题的正确方法是aws
从 Python 2.6 卸载,然后为 Python 3.3 重新安装它。
如果您pip
按照建议使用,这将是微不足道的:
pip-2.6 uninstall awscli
pip-3.3 install awscli
不幸的是,因为您使用了它,所以easy_install
您必须手动卸载它。
真的,你不需要卸载包,只需要卸载/usr/local/bin
你的PATH
. 我怀疑rm /usr/local/bin/aws*
会解决这个问题,但要小心——确保那里没有安装任何其他东西,aws
但不是包的一部分。
同时,为了将来,安装pip
和使用它。对于 Apple 的 Python 2.6,使用sudo easy_install pip
来安装它。对于 Python 3.3,请按照pip
站点上的说明进行操作。