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

local

    通常情况下,对于特定的项目,我们可能需要切换不同的Python环境,这个时候就可以通过 pyenv local PYTHON_VERSION 命令来修改 当前目录 的Python环境。命令执行后,会在当前目录中生成一个 .python-version 文件(如果该文件已存在,则修改该文件的内容),里面记录着当前目录使用的Python版本号。

    可以看到python版本变成了2.7.15(之前~/.pyenv/version文件中的内容没有变),这就说明local的级别比global高,不管你global是什么版本,只要设置了local的版本,那就是local的版本。

退出local(退到了之前global的环境)

shell

通过执行 pyenv shell PYTHON_VERSION 命令,可以修改 当前shell 的Python环境。执行该命令后,会在当前 shell session (Terminal窗口)中创建一个名为 PYENV_VERSION 的环境变量,然后在 当前shell 的任意目录中都会采用该环境变量设定的Python版本。此时, global 和 local中设定的Python版本均会被忽略。
退出shell有两个方法,一个是重新打开一个shell,一个就是 pyenv shell --unset(退到了之前global的环境)
posted @ 2022-06-09 17:32  最咸的咸鱼  阅读(486)  评论(0编辑  收藏  举报