转自:http://blog.richieliu.com/blog/2013/05/19/macxi-tong-geng-xin-python/
Mac的系统都有预装python,这给我们的开发工作带来了极大的便利。不过苹果似乎对维护这些三方的语言(包括ruby)并没有什么热情,因此如果我们想要用上最新版的python,就需要自己动手了。
以我自己的mountain lion系统为例,在terminal输入
$python --version
会显示’python 2.7.3’,这是我们当前的python版本。而在python官网上目前的版本为2.7.9,接下来我们就来演示如何将系统的版本升级为2.7.9.
1. 下载并安装最新版Python
去这里选择适合自己的python版本,这里我选择的是Python 2.7.9 Mac OS X 64-bit/32-bit x86-64/i386 Installer。使用下载的DMG进行安装,系统会自动将python安装至/Library/Frameworks/Python.framework。需要注意的是,系统的python版本是在/System/Library/Frameworks/Python.framework,接下来我们就将新安装的版本替换至此。
2. 替换Python版本
这里比较简单,直接执行
$sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7
$sudo cp -R /Library/Frameworks/Python.framework/Versions/2.7 /System/Library/Frameworks/Python.framework/Versions/2.7
3. 修复Group属性
$sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/2.7
4. 修复Current链接
这里我们需要将/System/Library/Frameworks/Python.framework/Versions/Current链接到替换后的Python版本,执行
$sudo rm /System/Library/Frameworks/Python.framework/Versions/Current
$sudo ln -s /Library/Frameworks/Python.framework/Versions/2.7 /System/Library/Frameworks/Python.framework/Versions/Current
5. 替换/usr/bin中的版本
这一步比较关键,而且容易忘记。因为系统在/usr/bin目录中会存放Python相关的一些可执行文件,所以如果我们不替换此目录的文件,会导致Python执行的时候依然会使用旧版本。这里我们需要将/System/Library/Frameworks/Python.framework/Versions/Current中对应的文件替换至此,具体需要替换的是pydoc、python、pythonw、python-config这四个文件。执行
$sudo rm /usr/bin/pydoc
$sudo rm /usr/bin/python
$sudo rm /usr/bin/pythonw
$sudo rm /usr/bin/python-config
$sudo ln -s /System/Library/Frameworks/Python.framework/Versions/Current/bin/pydoc /usr/bin/pydoc
$sudo ln -s /System/Library/Frameworks/Python.framework/Versions/Current/bin/python /usr/bin/python
$sudo ln -s /System/Library/Frameworks/Python.framework/Versions/Current/bin/pythonw /usr/bin/pythonw
$sudo ln -s /System/Library/Frameworks/Python.framework/Versions/Current/bin/python-config /usr/bin/python-config
6. 编辑.bash_profile
在第1步Python进行安装的时候会自动修改~/.bash_profile文件,主要是指定可执行文件的路径。由于我们已经将系统版本进行过替换,所以不需要再在此文件进行任何修改。这里我们只需要删除新加的修改
PATH="/System/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
,或者将备份文件.bash_profile.pysave恢复即可。
PATH="/System/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
7. 生效.bash_profile
执行
$source ~/.bash_profile
至此,所有的替换工作已经完成,我们可以进行一下验证。重启terminal,执行
$python --version
,成功的话就会打印出我们所替换的最新版本。
此方法不但可以替换2.x的版本,对于3.x的版本也同样适用。