我最近将我的 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.path
2.6 库目录(至少在我的相对默认设置中)是在路径上,2.7 目录是不是在路径上。符号Current
链接目录也不在路径上。所以对于大多数脚本来说这应该不是问题。
但是,有可能(尚未测试)符号链接被或 所Current
使用。这会导致问题。更新 Python 版本时符号链接未更新确实看起来像是一个错误。easy_install
pip
答案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版本之后。