IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    pyenv实现多个python版本并存

    hyperxu发表于 2018-09-20 08:11:08
    love 0

    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


沪ICP备19023445号-2号
友情链接