一:安装pyenv依赖库与将要使用的命令
# 更新软件源
sudo apt-get update
# 更新软件
sudo apt-get upgrade
# 安装pyenv依赖
sudo apt-get install git make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev
# 安装python依赖
apt-get install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel liblzma-dev
二:pyenv的安装与卸载
## pyenv官方地址:https://github.com/pyenv/pyenv-installer
## (1)下载pyenv安装脚本并安装
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
## (2)配置环境变量,将安装路径写入 ~/.bashrc
## 将以下三条语句写入 ~/.bashrc
vim .bashrc
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
## (3)让配置生效
source ~/.bashrc
## (4)判断环境变量是否生效
echo $PATH ## 若命令结果的第一个结尾是shims则表示成功:
/home/python/.pyenv/plugins/pyenv-virtualenv/shims:/home/python/.pyenv/shims:
/home/python/.pyenv/bin:/home/python/bin:/home/python/.local/bin:/usr/local/sbin:
/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
## (5)如果想升级pyenv,可以使用如下命令
pyenv update
## 卸载pyenv
(1)若想要卸载pyenv(pyenv 安装的默认路径为 ~/.pyenv,如果是自定义安装路径则删除自定义文件夹):
rm -fr ~/.pyenv
(2)并删除刚才在 .bashrc 里写入的环境变量:
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
三:pyenv的常用命令
# 查看当前python版本
pyenv version
# 查看所有python版本
pyenv versions
# 查看所有可安装的python版本
pyenv install --list
# 安装指定python版本
pyenv install 3.6.5
# 安装新版本后rehash一下
pyenv rehash
# 删除指定python版本
pyenv uninstall 3.5.2
# 指定全局python版本
pyenv global 3.6.5
# 指定多个全局版本, python3版本优先
pyenv global 3.6.5 2.7.14
# 实际上当你切换版本后, 相应的pip和包仓库都是会自动切换过去的
四:安装pyenv-virtualenv来管理虚拟环境
## 下载pyenv-virtualenv
[root@devops ~]# git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
## (1)使用pyenv-virtualenv创建虚拟环境
以下命令将创建一个名为my-virtual-env-3.6.1的虚拟环境(目录),并且将 python 3.6.1 对应的bin和lib复制到该环境中。当该虚拟环境被激活后,所有的 python 操作都只在该环境中进行,从而和其它 python 内容隔离。
pyenv-virtualenv 支持自动激活和退出虚拟环境。
[root@devops ~]# pyenv virtualenv 3.6.1 my-virtual-env-3.6.1
## (2)进入和退出虚拟环境
## pyenv-virtualenv 用来隔离各个项目的依赖文件,常用命令包括:
[root@devops ~]#pyenv virtualenv [version] <venv-name> #创建虚拟环境
[root@devops ~]#pyenv activate <venv-name> #激活虚拟环境
[root@devops ~]#pyenv deactivate #退出虚拟环境
五:解决pyenv安装python版本时国内下载慢的问题
第一种办法:(不建议用,因为还是会从python官网去下载,pyenv无法修改下载源)
将下载好的相应的python安装包,
例如Python-3.6.1.tgz 放在 ~/.pyenv/cache下,
并且重命名为Python-3.6.1.tar.gz 然后执行pyenv install 3.6.1
第二种办法:(非常建议,直接用shell命令指定下载源下载需要的版本到~/.pyenv/cache/目录下,然后安装)
v=3.6.1; curl -L https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -o ~/.pyenv/cache/Python-$v.tar.xz; pyenv install $v
root@ops-test-01:~/.pip# pyenv versions
system
* 3.9.5 (set by /root/.pyenv/version)
3.9.5/envs/devops_platform
devops_platform --> /root/.pyenv/versions/3.9.5/envs/devops_platform
root@ops-test-01:~/.pip# v=3.6.1; curl -L https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -o ~/.pyenv/cache/Python-$v.tar.xz; pyenv install $v
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 145 100 145 0 0 917 0 --:--:-- --:--:-- --:--:-- 917
100 16.0M 100 16.0M 0 0 10.3M 0 0:00:01 0:00:01 --:--:-- 13.4M
Installing Python-3.6.1...
Installed Python-3.6.1 to /root/.pyenv/versions/3.6.1
root@ops-test-01:~/.pip# pyenv versions
system
3.6.1
* 3.9.5 (set by /root/.pyenv/version)
3.9.5/envs/devops_platform
devops_platform --> /root/.pyenv/versions/3.9.5/envs/devops_platform