python多版本管理工具pyenv详解
介绍
pyenv 是一个 python 版本管理工具,可以方便的在工作环境中安装、管理和切换不同版本的 python,结合 pyenv-virtualenv 插件,能够方便的创建和管理 python 虚拟环境,在虚拟环境中的各种操作,并不会影响到系统的正常运行,有效防止乱装 python 版本导致系统崩溃等问题的发生。
安装pyenv
# github官网:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
# 国内安装:
curl -L https://gitee.com/jordanxu/pyenv-installer/raw/master/bin/pyenv-installer | bash
cat .bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
fi
source .bashrc
使用pyenv安装python环境
当我们使用pyenv安装python的时候,默认将会去官网下载python,这时国内网络是不通的,解决办法:
自己手动去官网下载所需的python版本,之后上传到 ~/.pyenv/cache目录下:
安装包获取:通过网盘分享的文件:Python-3.8.20.tar.xz
链接: https://pan.baidu.com/s/11MnN2oAcf_FDUdBDEKqMfA?pwd=swee 提取码: swee
--来自百度网盘超级会员v4的分享
# 安装python依赖
yum install gcc make zlib-devel -y
yum groupinstall "Development Tools" -y
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel -y
# 安装python
mkdir ~/.pyenv/cache/
mv Python-3.8.20.tar.xz ~/.pyenv/cache/
ls ~/.pyenv/cache/
Python-3.8.20.tar.xz
pyenv install 3.8.20
pyenv version
pyenv versions
pyenv global 3.8.20
三种解释器版本控制方法比较(global、shell、local)
pyenv控制版本的方式有三种,分别是:global、shell、local
- pyenv shell会话:只影响当前会话,新开的终端仍然是之前的版本
# 设置版本
pyenv shell 3.3.3
# 取消设置当前shell窗口
pyenv shell --unset
- pyenv local本地设置:pyenv local命令只会对当前的文件夹和其子目录中的版本起作用 ,其他的目录不起作用
# 设置
pyenv local 3.3.3
# 取消当前目录的
pyenv local --unset
- pyenv global 全局设置:所有受到pyenv控制的窗口都受到了影响, 所以尽可能不要用root用户来安装pyenv,否则会影响到之前的系统
# 设置
pyenv global 2.7.8
# 取消全局设置
pyenv global system
pyenv常用命令
pyenv commands: 查看所有pyenv命令
pyenv root: 显示pyenv根目录
pyenv version: 查看当前版本
pyenv versions: 查看所有版本
pyenv install --list: 查看所有可安装的版本
pyenv install 3.6.5: 安装指定版本
pyenv rehash: 安装新版本后rehash一下
pyenv uninstall 3.5.2 : 删除指定版本
pyenv global 3.6.5: 指定全局版本
pyenv version-file/version-name/version-origin: 当前Python版本对应的文件/名字/位置
虚拟环境管理 (pyenv-virtualenv)
pyenv-virtualenv 是一个管理 python 虚拟环境的 pyenv 插件,具体可以查看 pyenv-virtualenv 文档。
pyenv要使用虚拟环境管理,必须安装一个插件pyenv-virtualenv
pyenv-virtualenv 的安装
git clone https://github.com/pyenv/pyenv-virtualenv.git $.pyenv/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
source ~/.bash_profile
pyenv help virtualenv
常用命令
pyenv virtualenv 3.8.20 v3.8.20env #创建虚拟环境
pyenv activate v3.8.20env #激活虚拟环境
pyenv deactivate v3.8.20env #关闭虚拟环境
pyenv virtualenvs #列出所有虚拟环境
pyenv uninstall v3.8.20env #删除虚拟环境
当切换python解释器的时候对应的pip和包库也会一并切换过去, 而且可以为指定版本的解释器创建项目所需的虚拟环境, 切换的时候也异常简单, 个人常用的做法是为每个项目创建不同的虚拟环境, 当进入该环境的时候就可以随便浪而不用担心影响到其它项目