由于 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
卸载 pythonpyenv 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)
注:若出现切换版本不成功
检查一下你的.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.