Ubuntu pyenv安装管理多版本python

安装pyenv

安装pyenv首先选择安装路径,一般选择安装在家目录下,很多软件的配置文件等都是以隐藏文件的形式放在家目录下或者根目录下,我们的安装路径设置为~/.pyenv
在终端窗口输入命令如下:

git clone https://github.com/pyenv/pyenv.git ~/.pyenv
或者
git clone https://gitee.com/krypln/pyenv.git   ~/.pyenv

定义环境变量

在终端窗口输入命令如下:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

注意:此时需要重启终端,才能使路径更改生效

pyenv的使用

  • 可以安装的python的版本:

     pyenv install --list
    

    在这里插入图片描述

  • 查看已经安装的python版本

     pyenv versions
    

    在这里插入图片描述
    此处的system是系统自带的Python版本,Ubuntu中系统自带2.7和3.5

  • 查看当前使用的python版本

    pyenv version
    

    在这里插入图片描述
    在这里插入图片描述

  • 安装一个python版本
    在安装python之前,要先安装python的一些依赖包,否则会安装失败:

    sudo apt-get install libc6-dev gcc
    sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
    
    

    在安装的时候pyenv会自动到github上下载,速度会很慢,这时候需要换源,此处使用搜狐的源,地址如下:
    http://mirrors.sohu.com/python
    在使用之前可以先看看有没有自己要的版本

    # 指定源,路径
    export PYTHON_BUILD_MIRROR_URL="http://mirrors.sohu.com/python/3.6.5/"
    # 下载某个python版本
    pyenv install -v 3.6.5
    # 安装完后更新一下数据库:
    pyenv rehash
    

    在这里插入图片描述
    如果上述方法无法解决下载缓慢的问题,可以使用下面这个方法

    # 使用curl或者wget下载到~/.pyenv/cache下,然后再用pyenv安装,下面是可选的安装模式
    cd ~/.pyenv
    sudo mkdir cache
    wget -c http://mirrors.sohu.com/python/3.7.3/Python-3.7.3.tar.xz -P  ~/.pyenv/cache/
    pyenv install -v 3.7.3
    或者用淘宝源
    https://npm.taobao.org/mirrors/python/3.6.5/Python-3.6.5.tar.xz
    https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz
    wget -c https://npm.taobao.org/mirrors/python/3.7.3/Python-3.7.3.tar.xz -P  ~/.pyenv/cache/
    
    

    在这里插入图片描述

  • 换源脚本
    linux下换源脚本

    vim ~/.pyenv/pyenv-installer.sh

    chmod +x ~/.pyenv/pyenv-installer.sh

    #!/bin/bash
    v=$1;
    wget https://mirrors.huaweicloud.com/python/${v}/Python-${v}.tar.xz -P ~/.pyenv/cache/;
    pyenv install -v ${v}
    
    

    vim ~/.bashrc添加这一句脚本

    alias pyenv-install='~/.pyenv/pyenv-installer.sh'

    source ~/.bashrc

    安装

    pyenv-install 3.12.2

  • 卸载一个python版本

    pyenv uninstall 3.6.5
    
  • 设置全局python版本
    我是mac远程控制Ubuntu安装的,在设置完成后需要断开远程连接后重新远程才生效,在本机设置完成后如果没生效可以重新打开终端试试

    pyenv global 3.6.5
    

    1
    在这里插入图片描述

注意事项:

  • 系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响。
  • 使用pip安装第三方模块时会安装到~/.pyenv/versions/3.6.5下,不会和系统模块发生冲突。
  • 使用pip安装模块后,可能需要执行pyenv rehash更新数据库。

安装 pyenv-virtualenv

  • 安装
    我们的pyenv的安装目录是/.pyenv,所以我们需要把pyenv-virtualenv克隆到/.pyenv/plugins下,执行下面的命令

    git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
    
    
  • 配置环境变量
    终端输入下面的命令

    echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
    # 重新初始化 shell 环境,如果不执行该命令需要重新启动终端窗口
    exec $SHELL
    
  • 创建虚拟环境

    pyenv virtualenv 3.6.5 myvenv
    

    创建的虚拟环境会存放在~/.pyenv/versions/目录下
    在这里插入图片描述

  • MAC环境下pyenv 安装python3.7失败

    ./Modules/posixmodule.c:8433:15: error: implicit declaration of function 'sendfile' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            ret = sendfile(in, out, offset, &sbytes, &sf, flags);
                  ^
    1 error generated.
    make: *** [Modules/posixmodule.o] Error 1
    make: *** Waiting for unfinished jobs....
    
      CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.7.4 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)
    
  • 使用虚拟环境
    在任意目录下,执行下面命令

    pyenv activate myvenv
    

    在这里插入图片描述

    # 查看虚拟环境python版本
    python --version
    # 查看pip版本、python版本、 pip 包安装的绝对路径,也是 pyenv 安装目录下/versions/python版本/envs/虚拟环境名/
    pip --version
    

在这里插入图片描述

  • 退出虚拟环境
    关掉终端,相当于退出虚拟环境

    # 主动退出
    pyenv deactivate 
    

    在这里插入图片描述

  • 给某个目录使用虚拟环境
    该目录下执行:

    pyenv local myvenv
    

    在这里插入图片描述
    当前目录下有个隐藏文件 .python-version,你可以看到这个文件里面,只写了一句话 my-env
    只要进入这个目录,就会自动激活虚拟环境,此时就算手动执行pyenv deactivate也不会退出
    在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值