pyenv实现多个python版本并存

pyenv实现多个python版本并存

由于python 2和3存在不小的区别,尤其个别第三方库并不是都兼容,所以有时候我们需要在同一台服务器上运行多个不同的python版本

1.安装pyenv

(1)安装到$HOME/.pyenv目录:

1
git clone https://github.com/yyuu/pyenv.git ~/.pyenv

(2)配置环境变量

12
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profileecho 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

(3)添加pyenv初始化到你的shell并生效

123
echo 'eval "$(pyenv init -)"' >> ~/.bash_profileecho 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profilesource ~/.bash_profile

2.安装需要的python版本

查看可安装版本:

1234567891011121314151617181920212223242526272829303132
[db_dlp@prd-bigdata20 ~]$ pyenv install --listAvailable versions:  2.1.3  2.2.3  2.3.7  2.4  2.4.1  2.4.2  2.4.3  2.4.4  2.4.5  2.4.6  2.5  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-dev  2.7  2.7.1  2.7.2  2.7.3  2.7.4  2.7.5  2.7.6  ...

安装:

1
pyenv install 3.6.3

卸载:

1
pyenv uninstall 3.6.3

查看已安装版本:

123
[db_dlp@prd-bigdata20 ~]$ pyenv versions* system (set by /home/db_dlp/.pyenv/version)  3.6.3

3.切换python版本

局部切换
python版本仅作用于指定的目录环境,切换到指定的目录下执行:

1
pyenv local 3.6.3

全局切换

1
pyenv global 3.6.3

4.pyenv安装pyhton下载安装慢的问题

使用pyenv在安装python时,由于是去python官方下载,由于总所周知的原因,经常会遇到下载缓慢的问题。
对此,可以事先下载好python包,放到~/.pyenv/cache目录即可。修改~/.pyenv/plugins/python-build/share/python-build/3.6.3文件:

123456789
cat ~/.pyenv/plugins/python-build/share/python-build/3.6.2#require_gccinstall_package "openssl-1.0.2g" "https://www.openssl.org/source/openssl-1.0.2g.tar.gz#b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33" mac_openssl --if has_broken_mac_opensslinstall_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readlineif has_tar_xz_support; then  install_package "Python-3.6.3" "~/.pyenv/cache/Python-3.6.3.tar.gz" ldflags_dirs standard verify_py35 ensurepipelse  install_package "Python-3.6.3" "~/.pyenv/cache/Python-3.6.3.tar.gz" ldflags_dirs standard verify_py35 ensurepipfi

可以提前安装好一些依赖包:

1
yum install -y gcc make patch gdbm-devel openssl-devel sqlite-devel zlib-devel bzip2-devel readline-devel

这样再次执行pyenv install 3.6.3时,就不会出现安装慢的问题。

5.切换版本后python版本未变更

添加环境变量

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

如果变量生效报错,可能是需要安装pyenv-virtualenv插件:

1
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

文章来源:

Author:hyperxu
link:http://www.hyperxu.com/2018/09/20/pyenv-install/