我一直在努力将 Python 2.7 设置为我系统上的默认 Python。
已经是了。当你拿一个透明的 Lion 框,然后python
在 shell 中键入时,它会运行/usr/bin/python
,即 Python 2.7.2。
我的操作系统附带 Python 2.6
Lion 带有 2.5、2.6 和 2.7,以及隐藏的 2.3。
它们安装在/System/Library/Frameworks/Python.framework/Versions
. 除了 2.3 之外的所有符号链接/usr/bin/python2.x
,在一个干净的系统上,将是 PATH 上第一个具有该名称的东西,因此只需键入python2.6
将运行 2.6,而python2.7
将运行 2.7。
而且还有一个特殊的包装器/usr/bin/python
默认运行 2.7,但您可以使用VERSIONER_PYTHON_VERSION
或com.apple.versioner.python
首选项进行配置。
从那以后,我已经安装了 2.7(从源代码),并一直在尝试将其作为我的默认版本。
“默认版本”是什么意思?您只是希望它成为您python
在新的终端 shell 中键入时运行的内容,还是#!/usr/bin/env python
在脚本中用作 shebang 行?
最简单的方法是将安装它的任何目录放在 PATH 上比 /usr/bin 更高的位置。
如果您已经安装了“框架构建”(您应该拥有),那么/Library/Frameworks/Python.framework/Versions/2.7/bin
您可以将一个目录放在 PATH 的顶部。这避免了影响 /usr/local 和 /usr 的顺序,这意味着您可以使用由 Python setup.py 安装安装的任何脚本,而无需将它们符号链接到 /usr/local/bin。
这很重要,因为 Apple 的 Python 会将脚本安装到 /usr/local/bin 中——例如,如果你为你的定制 Python/usr/bin/easy_install-2.7 pip
获得/usr/local/bin/pip
/usr/local/bin/pip-2.7 pip`,你不需要. If you also install
不希望它出现在同一个地方;否则,无论您最后安装的是哪个,都会替换另一个。
如果您没有安装框架构建,或者您已经将其配置为安装脚本/usr/local/bin
,或者您想影响 /usr/local 的顺序,只需将其放在/usr/local/bin
PATH 的顶部即可。
不知何故,每次我的 shell 启动时,Python 2.6 都会自动别名为我的默认 python
通过自动别名,你的意思是有一个 bash alias
?就像你输入的那样alias
,它会给你一个清单,包括python
?
如果是这样,您需要解决此问题,而不是尝试在其上堆放另一个 hack 以撤消它所产生的任何影响。
如果 中没有别名命令~/.*
,请查看/etc/
. 如果你grep -r alias /etc
,它会给你一个很大的列表,你将不得不跳过邮件别名和 apache 别名(可能还有一些权限被拒绝输出到 stderr),但在那之后,应该没有 shell 别名。
此外,我的 /usr/bin/python 没有任何别名,
这让我觉得你混淆了别名和符号链接。他们不是一回事。哪一个是问题?你必须先知道哪里出了问题,然后才能修复它。
所以,试试这个:
which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
如果您的 PATH 是您所说的那样,它应该是。如果没有,你没有正确设置你的 PATH ,所以echo $PATH
看看。
如果是这样,那么ls -l /Library/Frameworks/Python.framework/Versions/2.7/bin/python
。它应该是指向python2.7
or的符号链接./python2.7
,而不是指向其他目录中任何内容的符号链接。如果没有,您的安装已损坏,最好的办法是卸载 Python 并正确重新安装。或者只是不要重新安装它,而使用 Apple 的。或者,如果您实际上需要 2.7.3 而不是 2.7.2,或者您需要构建独立的py2app
捆绑包(特别是如果您需要它们与旧版 OS X 兼容),或者您对sudo
系统范围的文件过敏并更喜欢是世界可写的,或者由于某些其他原因你不能使用苹果的,从 python.org 或 Homebrew 安装,而不是尝试自己做。