pyenv

pyenv

重要特性:管理不同解释器版的同时,控制不同的包环境

一、安装pyenv

  1. 从github上clone项目到HOME目录下的.pyenv文件夹

    $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

  2. 增加SHELL的配置文件

    - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
    - echo -e 'if command -v pyenv 1>/dev/null 2>&1; then
     eval "$(pyenv init -)"
     fi' >> ~/.bashrc
    - exec "$SHELL"
    - source .bashrc
    

二、下载不同的解释器版本

  1. 直接采用 pyenv install x.x.x, 会默认从python的官网下载,例如(https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz)这样网上会超级慢,并且几乎都是失败的

  2. 由于如上原因,先单独下载解释器的各种需要的版本到本地需要下载.xz格式的解释器包

    • 如下载到Downloads文件夹下,利用

      python3 -m http.server 8000
      

      启动一个本地的服务器

    • 再开启另一个terminal窗口,修改

      export PYTHON_BUILD_MIRROR_URL="http://127.0.0.0:8000"
      
    • 接下来尝试如:

      pyenv install 3.8.0 -v
      

      会遇到两个问题:

      • 缺少依赖的包

        sudo apt install libssl-dev
        
      • 查找文件改名,从服务器日志可以看到,请求的文件名为一个uuid

        127.0.0.1 - - [12/Aug/2020 20:19:33] code 404, message File not found
        127.0.0.1 - - [12/Aug/2020 20:19:33] "HEAD /f434053ba1b5c8a5cc597e966ead3c5143012af827fd3f0697d21450bb8d87a6 HTTP/1.1" 404 -
        

        mv Python-3.8.0.tar.xz f434053ba1b5c8a5cc597e966ead3c5143012af827fd3f0697d21450bb8d87a6

      再次尝试安装就可以成功了。

三、添加插件pyenv-virtualenv

  1. 下载安装并配置文件

    git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
    echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
    source ~/.bashrc
    
  2. 使用的方法

    pyenv virtualenv 版本号 name 创建一个虚拟环境,命名为name 创建好后可通过pyenv versions来查看

    pyenv activate name 切换到name虚拟环境中

    pyenv deactivate 推出虚拟环境

    pyenv virtualenv-delete name 删除name环境

    pyenv virtualenvs 显示全部的环境

原文地址:https://www.cnblogs.com/persisit/p/13493952.html