在Mac OS 10.5.8上尝试升级Python到3.0
我在我的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 个回答
首先,/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 版本,可以按照以下步骤操作:
删除你
.bash_profile
和/或.profile
文件末尾的多余行,可以通过恢复.bash_profile.pysave
和.profile.pysave
来做到。删除 python2.6 的框架目录:
sudo rm -r /Library/Frameworks/Python.framework/Versions/2.6
删除 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 的支持就被立即停止了。