Python版本管理神器之pyenv
前言
之前一直在用 virtualenv 和 virtualenvwrapper 这两个工具管理 Python 虚拟环境,但是有个问题,就是想要创建指定版本的虚拟环境就必须先安装指定的 Python 版本,比如我想创建一个基于 Python3.6 的虚拟环境,那么我首先得安装 Python3.6(不管是直接安装还是源码安装,总之比较麻烦),然后在基于安装好的版本去创建虚拟环境,自从知道了 pyenv 这个神器之后,就几乎不用上述工具了。 ~ pyenv 好像对 Windows 平台不太友好。
介绍
Ubuntu安装
下载
- 方式一(速度慢):
1 | git clone https://github.com/yyuu/pyenv.git ~/.pyenv |
- 方式二(速度快):
1 | curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash |
执行上述操作之后,会将 pyenv 安装到当前用户的 ~/.pyenv 目录下
编辑 .bashrc 文件
- 打开 .bascrc 文件
1 | vim ~/.bashrc |
2 .将一下内容复制到末尾
1 | export PYENV_ROOT=/root/.pyenv |
3.更新 .bashrc 文件
1 | source ~/.bashrc |
安装 Python 依赖
1 | sudo apt-get install make build-essential libssl-dev zlib1g-dev |
测试使用
查看是否安装成功
- 查看当前安装版本
1 | IN: |
- 查看当前所有 Python 版本
1
2
3
4IN:
pyenv versions
OUT:
* system (set by /root/.pyenv/version)表示当前只有系统默认的版本
安装 Python 指定版本
- 查看当前所有可安装版本
1
pyenv install --list
- 安装想要安装的版本(这里选择 Python3.6.5)
1 | IN: |
- 再次查看所有 Python 版本
1 | IN: |
切换 Python 版本
有三种切换方式 glocal local shell*
glocal 全局环境,在未再次使用 glocal切换环境之前,一直使用此环境。
local 本次登录环境,重启后,则环境失效,并返回当前glocal的环境。
shell 局部(临时)环境。关闭命令行窗口,则环境失效,并返回当前glocal的环境。
pyenv glocal 3.6.5
卸载指定版本
1 | pyenv uninstall 3.6.5 |
安装 virtualenv
- 下载
pyenv 已经帮我们以 plugin 的形式安装好了,如果未安装,则需要我们手动安装一下
1 | git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv |
- 编辑 .bashrc 文件
1 | vim ~/.bashrc |
- 将以下内容复制到末尾
1
eval "$(pyenv virtualenv-init -)"
- 更新 .bashrc 文件
1 | source ~/.bashrc |
创建虚拟环境
使用说明: pyenv virtualenv 3.6.5 virtual_name
实际使用:pyenv virtualenv 3.6.5 test
进入虚拟环境
1 | pyenv activate test |
- 退出虚拟环境
1
pyenv deactivate
- 删除虚拟环境
1 | pyenv uninstall test |
输入yes即可
常用命令
使用方式: pyenv <命令> [<参数>]
1 | 命令: |
问题
1.切换不成功
如果遇到切换之后,Python版本还是系统的默认版本的话,就需要配置一下环境变量,在 ~/.zshrc 或 ~/.bash_profile 文件最后写入:
1 | if which pyenv > /dev/null; |