美文网首页 移动 前端 Python Android Java
mac是否应该使用系统自带的Python?

mac是否应该使用系统自带的Python?

作者: nextliving | 来源:发表于2018-04-22 14:21 被阅读5836次

使用mac osx的朋友知道,mac osx系统自带python。那么,我们开发过程中是否应该使用系统自带的Python?有什么样的利和弊,如何规避利弊?本文将带你一探究竟。

系统自带python窥探

打开终端,输入以下命令:

$ which python

应该看到终端输出以下内容

/usr/bin/python

打印/usr/bin中的文件:

ls -1 /usr/bin

可以看到以下文件:


pydoc

pydoc2.6

pydoc2.7

python

python-config

python2.6

python2.6-config

python2.7

python2.7-config

pythonw

pythonw2.6

pythonw2.7

python并不是真正的python程序,执行命令行程序python实际执行的是一个真正的系统默认的python程序,例如python2.7。可以使用以下命令查看系统默认的python程序版本:

$python --version

可以看到终端输出以下信息:

2.7.10

那么,如果想改变系统默认的python程序版本,比如从2.7.10改成2.6.9,该怎么做呢?根据StackExchange上这个问题,mac os下正确的做法有2种:

方法1

`$defaults write com.apple.versioner.python Version 2.6

`

方法2

~/.bash_profile添加下面一行:

export VERSIONER_PYTHON_VERSION=2.6

这2种方法都来自于苹果官方说明文档,查看文档方法为:

$ man python

不过网上很多文章建议不要随便更改系统默认python版本,可能引发无法预知的错误。

事实上,/usr/bin/python2.7是一个符号链接文件(有关符号链接可以参考我的另一篇文章Homebrew安装Packages是否需要另外设置环境变量PATH?符号链接部分),使用以下命令查看它链接到哪里:

ls -l /usr/bin/python2.7

终端输出如下:


lrwxr-xr-x 1 root wheel 75 3 22 18:33 /usr/bin/python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7

可以看到/usr/bin/python2.7符号链接文件最终指向的是../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7

使用系统自带Python的弊端

  • 系统自带的python版本比较旧,得不到python开发社区的支持,系统版本python无法及时更新,

  • 使用系统自带python的pip安装的package可能会在升级mac os系统的时候消失,需要重装。package升级时也可能遭遇各种问题,参见这个issue

使用Homebrew安装最新的Python

为什么要使用Homebrew安装Python?

  • 总能下载到最新版本的python

  • Homebrew版的python包含了最新的pip和setuptools工具

安装步骤

首先需要安装苹果公司提供的免费IDE工具Xcode,或者不安装Xcode,只安装Xcode的命令行工具:

$ xcode-select --install

其次需要安装Homebrew,安装方法参见官网http://brew.sh/

接着执行

$ brew update

通常在新安装package的时候都会更新brew

最后,使用brew安装python

$ brew install python

默认会安装python2.x版本,截止到本文写作时安装的是2.7.11版本,可以使用如下命令查看homebrew版python相关信息:

$ which python

终端输出

/usr/local/bin/python

这是因为Homebrew会把package安装到/usr/local/Cellar下,同时在/usr/local/bin建立符号链接指向/usr/local/Cellar下真正的package里的bin。

用以下指令查看版本信息

python --version

终端输出

2.7.11

如果需要安装3.x版本python,请使用

$ brew install python3

参考

相关文章

网友评论

    本文标题:mac是否应该使用系统自带的Python?

    本文链接:https://www.haomeiwen.com/subject/dcqclftx.html