天天看点

Ubuntu pyenv安装管理多版本python

安装pyenv

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

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

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
           

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

pyenv的使用

  • 可以安装的python的版本:
    pyenv install --list
               
    Ubuntu pyenv安装管理多版本python
  • 查看已经安装的python版本
    pyenv versions
               
    Ubuntu pyenv安装管理多版本python
    此处的system是系统自带的Python版本,Ubuntu中系统自带2.7和3.5
  • 查看当前使用的python版本
    pyenv version
               
    Ubuntu pyenv安装管理多版本python
    Ubuntu pyenv安装管理多版本python
  • 安装一个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
               
    Ubuntu pyenv安装管理多版本python
    如果上述方法无法解决下载缓慢的问题,可以使用下面这个方法
    # 使用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
               
    Ubuntu pyenv安装管理多版本python
  • 卸载一个python版本
    pyenv uninstall 3.6.5
               
  • 设置全局python版本

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

    pyenv global 3.6.5
               
    Ubuntu pyenv安装管理多版本python
    Ubuntu pyenv安装管理多版本python

注意事项:

  • 系统自带的脚本会以/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/目录下
    Ubuntu pyenv安装管理多版本python
  • 使用虚拟环境

    在任意目录下,执行下面命令

    pyenv activate myvenv
               
    Ubuntu pyenv安装管理多版本python
    # 查看虚拟环境python版本
    python --version
    # 查看pip版本、python版本、 pip 包安装的绝对路径,也是 pyenv 安装目录下/versions/python版本/envs/虚拟环境名/
    pip --version
               
Ubuntu pyenv安装管理多版本python
  • 退出虚拟环境

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

    # 主动退出
    pyenv deactivate 
               
    Ubuntu pyenv安装管理多版本python
  • 给某个目录使用虚拟环境

    该目录下执行:

    pyenv local myvenv
               
    Ubuntu pyenv安装管理多版本python

    当前目录下有个隐藏文件 .python-version,你可以看到这个文件里面,只写了一句话 my-env

    只要进入这个目录,就会自动激活虚拟环境,此时就算手动执行pyenv deactivate也不会退出

    Ubuntu pyenv安装管理多版本python