之前就有听大妈推荐过 pyenv. 最近给一个项目这个库提交 Pull Request, 但 Python3.X 的单元测试没有跑过, 而我的机器上没有 Python3.X, 也不想把现有的 Python2.7 替换掉, 所以就用起了这个库.
简单的说, pyenv 是一个Python管理工具, 这个是和我们常用的 virtualenv 有所不通, 前者是对 Python 的版本进行管理, 实现不同版本的切换和使用. 后者测试创建一个虚拟环境, 与系统环境以及其他 Python 环境隔离, 避免干扰.
安装方法我就不做赘述了, pyenv readme 已经写的特别详尽
#pyenv使用方法
简单的说一下使用方法
##安装不同版本的 Python1
2pyenv install <version> #安装特定版本的 Python
pyenv install 3.3.0 #安装 Python 3.3.0
当我的系统 Python 版本是 2.7, 但是有个 叫做 py3-project 需要用 Python3 来运行的时候, 只需要这样做:1
2
3
4cd py3-project #进入项目目录
pyenv local 3.3.0 #将当前目录下的Python环境切换为3.3.0
pyenv version #运行显示通过pyenv设置之后的python版本, 得到结果是3.3.0
python --version #查看Python版本, 得到结果也是3.3.0
此时就可以通过 python3.3 来运行项目了, 才这个项目之外的目录运行 Python, 你会发现仍然是系统版本. 通过pyenv可以给不同的目录设置不同的 Python 版本, 还可以通过 pyenv global 这个命令切换整个全局的 Python版本. 赞爆了是不是.
#告别virtualenv
接下来, 再介绍一个工具, 配合pyenv, 让我告别了用了很久了virtualenv.这个工具叫做 pyenv-virtualenv, 安装方法依然跳过, 至于使用, 你只需要记住三条命令:1
2
3pyenv virtualenv 3.3.0 env #创建一个 Python 版本为 3.3.0 的环境, 环境叫做 env
pyenv activate env_name #激活 env 这个环境, 此时 Python 版本自动变为 3.3.0, 且是独立环境
pyenv deactivate #离开已经激活的环境
嗯, 写完这篇继续去修复那段 Python3.X 下通不过单元测试的程序.
再见了, virtualenv.