如何更改 Snow Leopard 上的默认 Python 版本?

如何更改 Snow Leopard 上的默认 Python 版本?

我最近将我的 Mac OS X 10.5 Leopard 安装升级到了 10.6 Snow Leopard,随之而来的是 Python 的升级版本 2.6.1(而不是 2.5.1)。现在当我python在终端中输入时,我仍然得到

Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) 
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

我查看了一下/usr/bin/,发现要获得 Python 2.6 我必须输入python2.6

问题是:如何使python命令映射到 Python 2.6?

答案1

这很容易:

defaults write com.apple.versioner.python Version 2.6

man python参阅 Apple 的完整解释。

另外,还有一个问题:确保您运行的是计算机自带的 Python,而不是您安装的其他 Python。通过在which python命令提示符下键入来执行此操作。它应该指向/usr/bin/python。我之所以提到这一点,是因为我的默认版本在 Snow Leopard 下是 2.6(我使用 Leopard 时是 2.5)。因此,您获得 2.5 的事实可能表明您的路径中还有其他东西。

更新

针对以下评论:

这并没有满足人们的要求。

在 OS X 10.8.2 中,对我来说确实如此。执行此操作后defaults write com.apple.versioner.python Version 2.6,Python 的默认版本确实是 2.6。(改回 2.7 后也是如此。)

无论我python直接运行,还是使用以 — 开头的可执行脚本#!/usr/bin/env python,我都会得到预期的 Python 版本。

这并不能解决 /System/Library/Frameworks/Python.framework/Versions 中的符号链接,其中 Current 指向 2.7,这可能会导致问题(因为它仍然在 2.6 的 sys.path 中!)

确实,它并没有修复该符号链接。

但是,运行一个简短的脚本,它print()sys.path2.6 库目录(至少在我的相对默认设置中)在路径上,2.7 目录是不是在路径上。符号Current链接目录也不在路径上。所以对于大多数脚本来说这应该不是问题。

但是,有可能(尚未测试)符号链接被或 所Current使用。这会导致问题。更新 Python 版本时符号链接未更新确实看起来像是一个错误。easy_installpip

答案2

我建议使用 mac 端口...

有一个名为 python_select 的包允许并行使用 Python。因此首先安装mac 端口如果尚未安装。

首先安装 python_select 包:

sudo port install python_select

现在你可以检查你的系统上有哪些可用的 Python 发行版。只需发出以下命令:

port select --list python     (MacPorts 2.x)
python_select -l              (MacPorts 1.x)

就我而言,它至少打印了 Snow Leopard 默认自带的 python 版本:python26-apple

port select --show python     (MacPorts 2.x)
python_select -s              (MacPorts 1.x)

显示当前选定的版本,例如python26-apple。所以你看,这个包与 Mac 配合得很好。有关更多选项问题

port select                   (MacPorts 2.x)
python_select -h              (MacPorts 1.x)

然后您可以在 ports 存储库中搜索可用的 python 版本:

port search python

这将生成一个可用的 Python 的长列表。

要安装所需的软件包,例如 python 2.4,请执行:

sudo port install python24

现在python_select -s将显示新安装的 python。要切换到 python 2.4,请执行以下操作:

sudo port select --set python python24  (MacPorts 2.x)
sudo python_select python24             (MacPorts 1.x)

此命令在各个 shell 之间是持久的。

答案3

假设你正在使用 bash,请输入:

% type -a python

这将显示 PATH 中的所有“python”可执行文件、别名、shell 内置命令(可能没有)或 bash 函数。

这应该可以帮助您更好地识别这里发生的事情。

答案4

python并不理想(在我看来),但是这修复了我在 中寻找的所有应用程序的问题/usr/local/bin/

sudo cp /usr/local/bin/python3 /usr/local/bin/python

当然,在安装最新的Python版本之后。

相关内容