6

我一直在努力将 Python 2.7 设置为我系统上的默认 Python。

Python 2.6 随我的操作系统一起提供,并且我已经安装了 2.7(从源代码)并且一直在尝试将其作为我的默认版本。

有一次有人建议我尝试一个包管理器(MacPorts / Fink / Homebrew)并且我做到了,我认为这可能是个坏主意。

总的问题是,在某个地方,不知何故,每次我的 shell 启动时,Python 2.6 都会自动别名为我的默认 python。我已经浏览了我的 .profile 和 .bashrc,并且没有可以给它们起别名的命令。

我还设置了我的默认路径以/Library/Frameworks/Python.framework/Versions/2.7/bin首先查看。我也尝试过此SO 帖子和此SU 帖子中的建议,但无济于事。我需要使用 2.7 作为我的默认值,因为我有依赖于 argparse 等的脚本。

此外,我的 /usr/bin/python 没有任何别名,而 /usr/local/bin 是:/usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python

4

1 回答 1

5

我一直在努力将 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_VERSIONcom.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/binPATH 的顶​​部即可。

不知何故,每次我的 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.7or的符号链接./python2.7,而不是指向其他目录中任何内容的符号链接。如果没有,您的安装已损坏,最好的办法是卸载 Python 并正确重新安装。或者只是不要重新安装它,而使用 Apple 的。或者,如果您实际上需要 2.7.3 而不是 2.7.2,或者您需要构建独立的py2app捆绑包(特别是如果您需要它们与旧版 OS X 兼容),或者您对sudo系统范围的文件过敏并更喜欢是世界可写的,或者由于某些其他原因你不能使用苹果的,从 python.org 或 Homebrew 安装,而不是尝试自己做。

于 2013-03-15T18:54:54.110 回答