Centos7 安装pyenv及使用
1.环境检查
查看版本
(env) [root@test4 conf]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
编译工具安装
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y
2. 安装pyenv
mkdir ~/.pyenv
#centos 是bashrc ubuntu 是/etc/profile
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL -l
(env) [root@test4 conf]# pyenv versions
system
* 3.7.0 (set by /root/.pyenv/version)
3. 下载版本
pyenv install -v 3.7.0 #安装3.7.0版本
我在下载过程中遇到了pyenv install 卡住不动的情况,解决办法如下
(env) [root@test4 conf]# vim pyenv-install
#!/bin/bash
cache="/root/.pyenv/cache"
pypack="Python-$1.tar.xz"
if [ ! -d "$cache" ]; then # 如果不存在此目录,创建
mkdir $cache
fi
if [ ! -f "$cache/$pypack" ]; then # 如果不存在 Python 安装包,就用 wget 下载
wget -P $cache https://www.python.org/ftp/python/$1/$pypack
# `wget -P dir url` 表示将 url 指向的内容下载到 dir 目录下
else
printf "\033[1;33m$cache/$pypack is existed.\033[0m\n" # 提示语
fi
(env) [root@test4 conf]# chmod 777 /root/pyenv-install
(env) [root@test4 conf]# ./pyenv-install 3.7.0
(env) [root@test4 conf]# pyenv install -v 3.7.0 #就可以安装好了
4. 切换Python 版本
global
![](https://img2022.cnblogs.com/blog/1172315/202206/1172315-20220609173128694-1129995159.png)
![](https://img2022.cnblogs.com/blog/1172315/202206/1172315-20220609173129064-1051917748.png)
local
通常情况下,对于特定的项目,我们可能需要切换不同的Python环境,这个时候就可以通过 pyenv local PYTHON_VERSION 命令来修改 当前目录 的Python环境。命令执行后,会在当前目录中生成一个 .python-version 文件(如果该文件已存在,则修改该文件的内容),里面记录着当前目录使用的Python版本号。
![](https://img2022.cnblogs.com/blog/1172315/202206/1172315-20220609173129376-1076595685.png)
可以看到python版本变成了2.7.15(之前~/.pyenv/version文件中的内容没有变),这就说明local的级别比global高,不管你global是什么版本,只要设置了local的版本,那就是local的版本。
退出local(退到了之前global的环境)
![](https://img2022.cnblogs.com/blog/1172315/202206/1172315-20220609173129669-1064856034.png)
shell
通过执行 pyenv shell PYTHON_VERSION 命令,可以修改 当前shell 的Python环境。执行该命令后,会在当前 shell session (Terminal窗口)中创建一个名为 PYENV_VERSION 的环境变量,然后在 当前shell 的任意目录中都会采用该环境变量设定的Python版本。此时, global 和 local中设定的Python版本均会被忽略。
![](https://img2022.cnblogs.com/blog/1172315/202206/1172315-20220609173129992-1109462974.png)
退出shell有两个方法,一个是重新打开一个shell,一个就是 pyenv shell --unset(退到了之前global的环境)