Mac OS X预装的Python与Python.org的区别是什么?
我刚开始用Mac(雪豹系统),发现Mac OS X里自带了Python。那这个自带的Python和从Python.org下载的有什么区别呢?
如果我安装从Python.org下载的版本,会不会导致什么问题?会不会多余呢?
补充说明
如果两个版本的编号完全一样,为什么我还要选择从Python.org下载的版本呢?
2 个回答
要知道你在比较哪个版本,光凭这一点是没法判断的。你最好在你的默认 OS X 系统上运行一下 python --version
,然后查看从那个版本到后续版本的更新说明。我猜(我没有 OS X)你可能在用 2.4.x 或 2.5.x。自 2.4.x 版本以来,2.x 版本的变化很少。Python 3.x 引入了一些语法上的变化,这可能会导致一些现有代码无法运行。最明显的变化是,在 3.0 中,print
变成了一个函数,而在 2.x 中仍然是一个语句。
一般来说,在 2.x 版本之间,语法只是得到了增强,而不是被破坏。变化主要体现在库上(比如在 2.6 中,md5 模块被弃用,取而代之的是 hashlib 模块)。
在Mac OS X 10.6(雪豹)中,苹果提供的Python版本是2.6.1(根据之前的OS X版本,苹果不太可能在10.6.x的维护更新中升级到更高版本)。Python 2.6的最新版本(可能也是最后一个版本)是2.6.6。所以如果你安装python.org上最新的版本,你就能享受到在Python 2.6的整个生命周期中修复的许多bug。还有一些其他的区别。python.org的2.6.x版本是只支持32位的,而苹果提供的版本是支持32位和64位的通用版本,默认情况下会优先在64位模式下运行。这两种版本在安装依赖其他第三方库的C扩展模块的第三方包时,可能会出现一些问题。所有组件之间需要至少有一个共同的架构(无论是32位的i386
,还是64位的x86_64
)。另一个区别是,苹果提供的2.6版本链接了一个新的Tk 8.5版本;有报告指出,10.6自带的IDLE
和其他使用Tkinter
的应用程序可能会出现问题。如果你打算使用这两个,可能更适合使用python.org的2.6版本,它链接的是Tk 8.4。
在OS X上,安装多个Python版本(即使是同一个大版本)特别简单和常见。如果你安装了python.org的版本,默认情况下安装程序会修改你的shell搜索PATH
,这样python.org的版本会被优先找到。你也可以通过绝对路径/usr/local/bin/python2.6
来访问它。苹果提供的版本仍然可以通过/usr/bin/python2.6
来使用。
顺便提一下:要知道Python 2.7已经发布,并且在python.org上有适用于OS X的安装程序。还有一个新的、不向下兼容的Python版本,Python 3,也已经推出(目前是3.1.2,3.2将在几个月后发布),预计随着新功能的不断添加,Python 3会逐渐取代Python 2,变得更受欢迎。