在Mac OS 10.5.8上尝试升级Python到3.0

2 投票
1 回答
1561 浏览
提问于 2025-04-15 15:40

我在我的Mac上升级Python时遇到了一些问题。第一次尝试时,我从http://python.org/download/mac/下载并安装了2.6.4版本的MacPython安装包。安装完成后,我在终端输入'python',它确实显示了这个版本。

不过,我还有一个测试脚本,里面有:

import os, json

但是我遇到了一个错误,提示找不到'json'库。在脚本的开头,我加了一个shebang,这样可以从终端运行:

#! /usr/bin/python

我怀疑苹果自带的指向Python 2.5的符号链接没有被2.6.4的安装程序更新,所以在终端直接输入'python'时运行的是新版本,但我的test.py文件却在执行2.5版本。

所以在这个时候,我看了一些其他的StackOverflow页面,关于如何升级Python,大家推荐使用第三方的包,这样可以并行安装,不会破坏系统对2.5版本的依赖。然后我发现ActivePython提供了一个3.x的安装包(这个在另一个StackOverflow页面也被推荐过)。我安装了这个,但'python'仍然显示2.6.4,而且我的脚本还是找不到json库。

最后,我对如何安全地删除MacPython(我上面提到的Mac安装包)感到困惑。页面上有一句话提到要删除一些看起来对Mac上的Python非常重要的东西。引用如下:

  • 在你的应用程序文件夹中有一个MacPython 2.5的文件夹。在这里你可以找到IDLE,这是官方Python发行版的标准开发环境;PythonLauncher,它处理从Finder双击Python脚本的操作;还有“Build Applet”工具,可以让你将Python脚本打包成独立的应用程序。
  • 一个框架/Library/Frameworks/Python.framework,里面包含了Python的可执行文件和库。安装程序会将这个位置添加到你的shell路径中。要卸载MacPython,你只需删除这三样东西。Python可执行文件的符号链接位于/usr/local/bin/

所以现在我安装了三个版本的Python,不知道该怎么解决这个麻烦。

1 个回答

5

首先,/usr/bin/python 这个路径应该始终指向苹果自带的 Python,在 10.5 版本中,这意味着它是 python2.5。不要去改这个!

当你安装了 python.org 的 python2.6 时,默认情况下,它会在 /usr/local/bin/ 目录下创建一些快捷方式,所以你可以通过 /usr/local/bin/python2.6 来使用它,或者更简单的,直接输入 python2.6。因为在 python 2.6 中加入了 json 这个库,所以你会发现 json 模块在里面。解决你最初问题的一种方法就是把开头的那一行改成:

#!/usr/bin/env python2.6

另外,python.org 的安装程序默认会更新你的 shell 配置文件,把它的 bin 目录添加到你的 $PATH 中,这就是为什么你现在输入 python 很可能会调用 python2.6 的原因。

你其实不需要这样做,但如果你真的想要彻底删除 python.org 的 2.6 版本,可以按照以下步骤操作:

  1. 删除你 .bash_profile 和/或 .profile 文件末尾的多余行,可以通过恢复 .bash_profile.pysave.profile.pysave 来做到。

  2. 删除 python2.6 的框架目录:

    sudo rm -r /Library/Frameworks/Python.framework/Versions/2.6

  3. 删除 IDLE 和在 /Applications 中安装的额外内容:

    sudo rm -r /Applications/Python\ 2.6

另外,转向 Python 3 也是没问题的。目前,Python 2 和 Python 3 都在积极开发中;你可以查找一些资料了解它们的优缺点。不过,Python 3.0 不建议使用。因为这是一个重大版本,Python 3.0 出现了很多严重的初始错误,所以在发布 Python 3.1 后,3.0 的支持就被立即停止了。

撰写回答