美文网首页Python+AI
使用 pyenv 可以在一个系统中安装多个python版本

使用 pyenv 可以在一个系统中安装多个python版本

作者: 菩提老鹰 | 来源:发表于2016-01-06 21:02 被阅读23708次

    Title: 使用 pyenv 可以在一个系统中安装多个python版本
    Date: 2016-01-06
    Author: ColinLiu
    Category: Python
    tags: python,pyenv

    使用 pyenv 可以在一个系统中安装多个python版本

    Installl related

    yum install readline readline-devel readline-static -y
    yum install openssl openssl-devel openssl-static -y
    yum install sqlite-devel -y
    yum install bzip2-devel bzip2-libs -y
    

    Install pyenv

    git clone git://github.com/yyuu/pyenv.git ~/.pyenv
    
    vim ~/.bashrc
    export PYENV_ROOT="$HOME/.pyenv"
    export PATH = "$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init -)"
    
    source ~/.bashrc
    # exec $SHELL
    

    Check current version

    python -V
    

    List all version and install certain version

    pyenv install --list
    pyenv 3.5.1 install -v
    ## refresh database
    pyenv rehash
    
    ## if not new installed version, do like :
    pyenv global 3.5.1
    

    多环境

    # 创建新的环境,位于 ~/.pyenv/versions/
    $ pyenv virtualenv 2.7.1 env271
    
    # 切换到新的环境
    $ pyenv activate env271
    
    # 退回到系统环境
    $ pyenv deactivate
    
    # 删除新创建的环境
    $ rm -rf ~/.pyenv/versions/env271/
    

    Examples

    # 查看当前 pyenv 可检测到的所有版本,处于激活状态的版本前以 * 标示。
    $ pyenv versions
      system
    * 3.5.1 (set by /root/.pyenv/version)
      3.5.1/envs/flask_py351
      3.5.1/envs/pelican
      flask_py351
      pelican
    
    # 查看当前处于激活状态的版本,括号中内容表示这个版本是由哪条途径激活的(global、local、shell)
    $ pyenv version
    3.5.1 (set by /root/.pyenv/version)
    
    # 使用 python-build(一个插件) 安装一个 Python 版本,到 $PYENV_ROOT/versions 路径下。
    $ pyenv install -v 2.7.3
    
    # 卸载
    $ pyenv uninstall 2.7.3
    
    # 为所有已安装的可执行文件 (如:~/.pyenv/versions/*/bin/*) 创建 shims,
    # 因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令
    $ pyenv rehash
    
    # 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
    $ pyenv global 3.4.0
    
    # 设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。
    # 通过这种方式设置的 Python 版本优先级较 global 高。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。
    #若找不到,就用 global 版本。
    $ pyenv local 2.7.3
    
    # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。
    # 这个版本的优先级比 local 和 global 都要高。--unset 参数可以用于取消当前 shell 设定的版本。
    $ pyenv shell pypy-2.2.1
    $ pyenv shell --unset
    

    Refer to

    pyenv命令列表

    ---------------------------------------更多精彩请关注-------------------------------------

    公众号: Colinws工作室

    相关文章

      网友评论

      • 9c6c96b70220:您好,请问 pyenv 能安装到 windows 上吗?该怎么安装
        菩提老鹰:@王蒙_1b9f windows下面可以用:virtualenv
        参考地址: https://www.linuxidc.com/Linux/2017-06/145169.htm
      • Seer已被使用:想请教一下博主,pyenv创建了虚拟环境以后。pyenv global 和 pyenv activate有什么区别!?
        菩提老鹰:@Bug终结者_Seer 恩,就是这样,global 全局就在于:设置了,一直、所有用户 有效。
        Seer已被使用:@全栈运维 谢谢你的回答。但是我有一点疑问。比如有系统2.7和额外安装的3.5,我知道global可以切换默认使用的python版本。但是有个问题是,这个时候。我使用 “pyenv virtualenv 2.7 env27”,“pyenv virtualenv 2.7 env35”。这时候就有两个版本的虚拟环境。我试过了,好像使用“global env”和“activite env” 都能达到切换到虚拟环境的目的啊?!这一点我有点不理解。我是否可以理解为当前存在四个python环境,两个真实,两个分别依赖真实的虚拟环境。以及global能用于“真实和虚拟”并且是设置一次,一直有效。而activate 只能用于虚拟机,并且激活只在 一次 终端中有效?谢谢回答
        菩提老鹰:你好:
        ` pyenv activate` 是用来激活的虚拟环境的, 比如你用 `pyenv virtualenv 3.5.2 test` 创建了一个名为test的全新虚拟环境, ` pyenv activate test` 是激活该虚拟环境,让你切换到该新的环境;
        pyenv gobal 是你当前环境安装了多个Python版本的时候,切换你Python版本的,比如一般系统默认是Python2.7 ,你又安装了python3.5, 可以通过`python global python3.5` 让当前环境的Python版本变成3.5

        一个是新创建的Python虚拟环境的切换,一个是Python版本的切换。

        不知道我的回答解决了你的疑问了吗?
      • 阿金叔叔:pyenv install 3.5.1 -v
        写反了
        菩提老鹰:你是指 ` 3.5.1 -v` 写反了,应该是 `-v 3.5.1`?
        这个-v放到版本号前后都可以的

        ```bash

        root@pts/4 $ pyenv install -v 2.7.11
        /tmp/python-build.20170605175410.8503 ~
        Downloading Python-2.7.11.tgz...
        -> https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
        ^Cerror: failed to download Python-2.7.11.tar.gz



        root@pts/4 $ pyenv install 2.7.11 -v
        /tmp/python-build.20170605175422.8714 ~
        Downloading Python-2.7.11.tgz...
        -> https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
        ^Cerror: failed to download Python-2.7.11.tar.gz
        ```

      • Gxpzy:你好,mac下使用pyenv versions只列出了一个* system (set by /Users/gaoxiupei/.pyenv/version) 可是有两个版本啊,一个是2.x的一个是3.x的,3.x不是用pyenv安装的,2.x是自带的
        微笑在天上飞iii:可以把之前你自己安装的那个卸载掉再用pyenv安装一遍

      本文标题:使用 pyenv 可以在一个系统中安装多个python版本

      本文链接:https://www.haomeiwen.com/subject/attfkttx.html