背景
MacOS系统本身自带python,但是版本仍然停留在python2.7。私以为python2与python3语言差别比较大,python3额外一些新特性如**“通配符**,字典可排序,统一的Unicode编码”**等,都值得去尝试。为此,保证电脑上两个版本都能共存是很必要的。
方案一:使用pyenv兼容多版本
pyenv 是轻量的Python版本管理器,帮助你在电脑上建立多个版本的python环境,并提供方便的切换方法。 pyenv-virtualenv 是 pyenv的扩展工具(类Unix系统上),可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。
1. 使用Mac OSX的 Homebrew 安装
Homebrew作为OS X上强大的包管理器,为系统软件提供了非常方便的安装方式,独特式的解决了包的依赖问题,并不再需要烦人的sudo,一键式编译,无参数困扰,安装Homebrew:
1 | ~$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash |
安装完成后,根据提示将如下语句加入到 ~/.bash_profile
或~/.bashrc
中:
1 | port PYENV_ROOT="$HOME/.pyenv" |
2. pyenv 常用命令
使用 pyenv commands
显示所有可用命令
python 安装与卸载
1 | ~$ pyenv install 2.7.3 # 安装python |
python切换
1 | ~$ pyenv global 2.7.3 # 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。 |
python优先级
shell > local > global
pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。
1 | ~$ pyenv shell 2.7.3 # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。 |
方案二:使用Anaconda包管理多版本python
Anaconda 是 Python 的一个发行版,如果把 Python 比作 Linux,那么 Anancoda 就是 CentOS 或者 Ubuntu。它解决了Python开发者的两大痛点。
- 提供包管理,功能类似于 pip,Windows 平台安装第三方包经常失败的场景得以解决。
- 提供虚拟环境管理,功能类似于 virtualenv,解决了多版本Python并存问题。 ###1. 下载 Anaconda 直接在官网下载最新版本的 https://www.continuum.io/downloads 安装包, 选择对应Python版本的安装包,下载完成后直接安装,安装过程选择默认配置即可,大约需要1.8G的磁盘空间。
conda 是 Anaconda 下用于包管理和环境管理的命令行工具,是 pip 和 vitualenv 的组合。安装成功后 conda 会默认加入到环境变量中,因此可直接在命令行窗口运行 conda
命令,命令帮助可通过conda -h
查看。
如果你熟悉 virtualenv,那么上手 conda 非常容易,不熟悉 virtulenv 的也没关系,它提供的命令就几个,非常简单。我们可以利用 conda 的虚拟环境管理功能在 Python2 和 Python3 之间自由切换。
2. 多版本切换
1 | # 基于 python2.7 创建一个名为py2_env 的环境 |
3. 包管理
conda 的包管理功能是对 pip 的一种补充,如果当前已经激活了某个Python环境,那么就可以在当前环境开始安装第三方包。
1 | # 安装 numpy |