pyenv实现多个python版本并存

pyenv实现多个python版本并存

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

1.安装pyenv

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

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

(2)配置环境变量

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

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

1
2
3
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
source ~/.bash_profile

2.安装需要的python版本

查看可安装版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[db_dlp@prd-bigdata20 ~]$ pyenv install --list
Available 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

查看已安装版本:

1
2
3
[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文件:

1
2
3
4
5
6
7
8
9
cat ~/.pyenv/plugins/python-build/share/python-build/3.6.2
#require_gcc
install_package "openssl-1.0.2g" "https://www.openssl.org/source/openssl-1.0.2g.tar.gz#b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.6.3" "~/.pyenv/cache/Python-3.6.3.tar.gz" ldflags_dirs standard verify_py35 ensurepip
else
install_package "Python-3.6.3" "~/.pyenv/cache/Python-3.6.3.tar.gz" ldflags_dirs standard verify_py35 ensurepip
fi

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

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版本未变更

添加环境变量

1
2
3
4
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
hyperxu wechat
欢迎您扫一扫上面的二维码,订阅我的公众号!
坚持原创技术分享,您的支持将鼓励我继续创作!