Linux安装pyenv(多版本控制器)

1,230次阅读
没有评论

由于 python 的各种优点,学习 python 的人,越来越多。但是,学习 python 有一个不容忽视的问题就是版本问题。到现在为止,python 的版本有很多,但是问题在于 python2 与 python3 的区别。python3 的对一些模块进行了改变,导致了 python2 写的代码有的不被 python3 兼容,从而导致程序运行报错。因此,在工作和学习 python 的时候,最好是安装一个 pyenv, 创建虚拟环境,多安装几个 python 的版本。于是下面就是介绍安装 pyenv 的 python 多版本操作。

安装 pyenv

1. 安装 pyenv

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
或者
git clone https://github.com/yyuu/pyenv.git ~/.pyenv

bash 代码为:

#!/usr/bin/env bash

set -e
[ -n "$PYENV_DEBUG" ] && set -x

if [ -z "$PYENV_ROOT" ]; then
  export PYENV_ROOT="${HOME}/.pyenv"
fi

colorize() {if [ -t 1]; then printf "\e[%sm%s\e[m" "$1" "$2"
  else echo -n "$2"
  fi
}

# Checks for `.pyenv` file, and suggests to remove it for installing
if [ -d "${PYENV_ROOT}" ]; then
  { echo
    colorize 1 "WARNING"
    echo ": Can not proceed with installation. Kindly remove the'${PYENV_ROOT}'directory first."
    echo
  } >&2
    exit 1
fi

failed_checkout() {
  echo "Failed to git clone $1"
  exit -1
}

checkout() {[ -d "$2"] || git clone --depth 1 "$1" "$2" || failed_checkout "$1"
}

if ! command -v git 1>/dev/null 2>&1; then
  echo "pyenv: Git is not installed, can't continue." >&2
  exit 1
fi

if [ -n "${USE_GIT_URI}" ]; then
  GITHUB="git://github.com"
else
  GITHUB="https://github.com"
fi

checkout "${GITHUB}/pyenv/pyenv.git"            "${PYENV_ROOT}"
checkout "${GITHUB}/pyenv/pyenv-doctor.git"     "${PYENV_ROOT}/plugins/pyenv-doctor"
checkout "${GITHUB}/pyenv/pyenv-installer.git"  "${PYENV_ROOT}/plugins/pyenv-installer"
checkout "${GITHUB}/pyenv/pyenv-update.git"     "${PYENV_ROOT}/plugins/pyenv-update"
checkout "${GITHUB}/pyenv/pyenv-virtualenv.git" "${PYENV_ROOT}/plugins/pyenv-virtualenv"
checkout "${GITHUB}/pyenv/pyenv-which-ext.git"  "${PYENV_ROOT}/plugins/pyenv-which-ext"

if ! command -v pyenv 1>/dev/null; then
  { echo
    colorize 1 "WARNING"
    echo ": seems you still have not added'pyenv'to the load path."
    echo
  } >&2

  { # Without args, `init` commands print installation help
    "${PYENV_ROOT}/bin/pyenv" init || true
    "${PYENV_ROOT}/bin/pyenv" virtualenv-init || true
  } >&2

2. 配置

如果采用第一种,系统是会告诉你怎么做的(即将最后的三行追加到~/.bash_profile, 做环境变量)

# Load pyenv automatically by adding
# the following to ~/.bash_profile:

export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

如果采用第二种(同样是做环境变量)

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

3. 使用变量

source ~/.bash_profile

安装 python 的不同版本

1. 查看可安装的 python 的版本

pyenv install –list
Available versions:
2.1.3
2.2.3
2.3.7
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.5.0
2.5.1
2.5.2
2.5.3
2.5.4
2.5.5
2.5.6
2.6.6
2.6.7
2.6.8
2.6.9
2.7.0
2.7-dev
2.7.1
2.7.2
2.7.3
2.7.4
2.7.5
2.7.6
2.7.7
2.7.8
2.7.9
2.7.10
2.7.11
2.7.12
2.7.13
2.7.14
2.7.15
2.7.16
2.7.17
2.7.18
3.0.1
3.1.0
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
3.2.6
3.3.0
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.3.6
3.3.7
3.4.0
3.4-dev
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
3.4.10
3.5.0
3.5-dev
3.5.1
3.5.2
3.5.3
3.5.4
3.5.5
3.5.6
3.5.7
3.5.8
3.5.9
3.5.10
3.6.0
3.6-dev
3.6.1
3.6.2
3.6.3
3.6.4
3.6.5
3.6.6
3.6.7
3.6.8
3.6.9
3.6.10
3.6.11
3.6.12
3.6.13
3.7.0
3.7-dev
3.7.1
3.7.2
3.7.3
3.7.4
3.7.5
3.7.6
3.7.7
3.7.8
3.7.9
3.7.10
...

2. 安装 python

pyenv install -v 2.7.13
pyenv install -v 3.6.4

卸载 python
pyenv uninstall 2.7.13

常见问题及解决方案:
在使用 pyenv install 安装 python,可能会比较慢,甚至下载安装不成功

<1>. 这时最好使用是下载好 python 源码包,然后通过 pyenv 进行安装(可以下载到境外云服务器)
<2>. 将 python 源码包放置在~/.pyenv/cache/ 目录中(不要解压 ; 如没有 cache 就创建一个)
<3>. 执行 pyenv install 3.6.4

3. 查看版本

<1> 查看 pyenv 版本

pyenv --version
pyenv 1.2.3

<2> 查看当前 python 版本

pyenv versions

  • system (set by /root/.pyenv/version)
    2.7.13
    3.6.4

<3> 查看当前使用的版本(system 代表当前系统的 python 版本)

pyenv version
system (set by /root/.pyenv/version)

4. 切换 python 版本

pyenv global 3.6.4

pyenv version
3.6.4 (set by /root/.pyenv/version)

pyenv versions
system
2.7.13
* 3.6.4 (set by /root/.pyenv/version)

注:若出现切换版本不成功

Linux 安装 pyenv(多版本控制器)

检查一下你的.pyenv 的可执行文件的目录是什么,看看 PATH=”$PYENV_ROOT/shims:$PATH” 中的目录是 shims 还是 bin

将此内容添加到.bashrc 文件,或者新加到.zshrc 里面

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/shims:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
 eval "$(pyenv init -)"
fi

创建虚拟 python 环境

1. 安装插件

创建虚拟的 python 环境需要 pyenv-virtualenv 的插件,试着 pyenv virtual 补全一下,如果存在无需安装

 如果不存在,执行如下操作
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
echo‘eval“$(pyenv virtualenv-init -)”’>> ~/.bash_profile
source ~/.bash_profile

2. 创建虚拟环境

pyenv virtualenv 2.7.13 env2713

3. 查看 python 版本

pyenv versions
* system (set by /root/.pyenv/version)
2.7.13
2.7.13/envs/env2713
3.6.4
3.6.4/envs/env364
env2713
env364

使用 python 虚拟环境

1. 使用虚拟环境

[xxx]#pyenv activate env364
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1’to simulate the behavior.v364)

[xxx]# python
Python 3.6.4 (default, Apr 19 2018, 10:35:10)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type“help”,“copyright”,“credits”or“license”for more information.

正文完
 
评论(没有评论)