如何在Mac OS X Lion中将Python 2.6设置为默认版本?

11

我刚刚升级到Lion系统,随之而来的是Python 2.7版本。但是,我需要使用2.6版本作为我的默认Python版本,因为我主要工作的项目使用的是2.6版本。


1
你有没有考虑使用 virtualenv?! - Arthur Neves
也许这里有些东西可以用?http://superuser.com/questions/35256/how-can-i-change-the-default-python-version-on-snow-leopard - dcpomero
3个回答

72

苹果提供了两种非常简单的方法来更改OS X 10.6 Snow Leopard和10.7 Lion上默认的python版本。这些方法在苹果Python(1)页面上都有详细说明:

$ man python
$ which python
/usr/bin/python
$ python -V
Python 2.7.1
#
# temporarily change version
#
$ export VERSIONER_PYTHON_VERSION=2.6
$ python -V
Python 2.6.6
$ unset VERSIONER_PYTHON_VERSION
$ python -V
Python 2.7.1
#
# persistently change version
#
$ defaults write com.apple.versioner.python Version 2.6
$ python -V
Python 2.6.6

4
这是正确的答案,楼主应该更改他选择的解决方案。 - Pedro
我在一台安装了OS X 10.7.5的电脑上尝试了这个。在man 1 python的输出中没有出现字符串VERSIONER。如果我按照答案中的步骤尝试,我得到的是2.4.3。我们应该更新答案吗? - D A Vincent
1
截至OS X 10.9.1,它仍然有效。您确定您查看的man页面不是来自Python的第三方安装而不是Apple提供的安装吗?请尝试“man --path python”命令。它应该是“/usr/share/man/man1/python.1”。 - Ned Deily
有趣。这台电脑的man --path python输出是/Library/Frameworks/Python.framework/Versions/Current/man/man1/python.1。这肯定是苹果的吧?然而,还有一个/usr/share/man/man1/python.1.gz文件(未压缩),它提到了VERSIONER。我检查了一下,确实安装了MacPorts。Ports python27和python_select处于活动状态,所以可能它搞乱了man搜索路径。 - D A Vincent
1
不,/System/Library/Frameworks/Python.framework 是 OS X 中由 Apple 提供的系统 Python 的位置。/Library/Frameworks/Python.framework 是第三方框架(如 python.org)安装的位置。默认情况下,MacPorts Python 安装在其他地方,即 /opt/local/Library/Frameworks/Python.framework - Ned Deily
显示剩余2条评论

4
在运行以下内容后:
defaults write com.apple.versioner.python Version 2.6

为确保使用'sudo'安装的软件包被安装在正确的Python版本上,请将versioner选项设置为超级用户:
sudo su
# Enter password
defaults write com.apple.versioner.python Version 2.6
exit

1

你有几个选项:

  1. 将 /usr/bin/python 更改为指向 /usr/bin/python2.6 的链接
  2. 在你的路径中将 /System/Library/Frameworks/Python.framework/Versions/2.6/bin 放在 /usr/bin 之前
  3. 明确告诉你的脚本使用 /usr/bin/python2.6

不要使用选项1,因为其他答案中提到的原因。在OS X上它不是符号链接。 - Ned Deily
2和3都可以工作且不会破坏系统,但正如另一个答案中所指出的,苹果提供了一种更简单的方法来完成这个任务。 - Ned Deily

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接