• Python版本管理-pyenv


    1- 特点

    • pyenv更侧重在python 解释器版本管理上, 比包管理更大一个层级, 使用pyenv我可以方便的下载指定版本的python解释器, pypy, anaconda等, 可以随时自由的在shell环境中本地、全局切换python解释器

    • 开发的时候不需要限定某个版本的虚拟环境, 只需要在部署的时候用pyenv指定某个版本就好了

    • pyenv切换解释器版本的时候, pip和ipython以及对应的包环境都是一起切换的, 所以如果你要同时运行ipython2.x和ipython3.x多个解释器验证一些代码时就很方便

    • pyenv也可以创建好指定的虚拟环境, 但不需要指定具体目录, 自由度更高, 使用也简单

    2- 安装pyenv

    2.1- Github在线安装

    家目录里clone项目

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

    添加~.bash_profile配置文件中追加内容:

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

    生效:

    source ~.bash_profile
    

    2.2- 国内源访问安装[推荐]

    安装依赖包:

    ## centos/redhat
    yum install -y make libffi-devel  zlib* openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++  openssl-devel  xz xz-devel sqlite*  patch git
    
    ## debian/ubuntu
    apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
    apt-get install libc6-dev gcc -y
    

    gitee克隆:

    $ git clone https://gitee.com/laileman/pyenv ~/.pyenv
    

    手动生效:

    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
    source /root/.bashrc
    

    3- 使用

    3.1- 安装需要的python版本

    查看可以安装的版本:

    pyenv install -l
    
    [root@all-demo ~]# pyenv install -l
    Available versions:
    ***
      2.7.2
      2.7.3
      2.7.4
      2.7.5
      2.7.6
      3.3.6
      3.3.7
      3.4.0
      3.4-dev
      3.4.1
      3.4.2
      3.4.3
      3.4.4
      3.4.5
      3.4.6
      3.4.7
    ***
    

    在线安装指定版本:

    • 安装3.7.5版本
    pyenv install 3.7.6
    
    [root@all-demo ~]# pyenv install 3.7.6
    Downloading Python-3.7.6.tar.xz...
    -> https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz
    Installing Python-3.7.6...
    Installed Python-3.7.6 to /root/.pyenv/versions/3.7.6
    
    • 切换检查
    [root@all-demo ~]# pyenv versions
      3.7.6
    [root@all-demo ~]# pyenv local 3.7.6
    
    [root@all-demo ~]# python3 -V
    Python 3.7.6
    [root@all-demo ~]# pyenv version
    3.7.6 (set by /root/.python-version)
    
    

    3.2- 离线安装3.7.5版本

    从python官网下载源码包:

    官网地址:https://www.python.org/ftp/python/

    ## ## 下载包上传到主机
    wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz
    
    ## 安装离线包之前先检查已经安装的版本
    [root@all-demo ~]# pyenv versions
    Warning: no Python detected on the system
    

    离线编译安装

    [root@all-demo ~]# mkdir -p .pyenv/versions/3.7.5
    [root@all-demo ~]# tar -xf Python-3.7.5.tar.xz
    [root@all-demo ~]# cd Python-3.7.5/
    [root@all-demo Python-3.7.5]# ./configure --enable-optimizations --prefix=/root/.pyenv/versions/3.7.5/
    config.status: creating pyconfig.h
    config.status: pyconfig.h is unchanged
    creating Modules/Setup
    creating Modules/Setup.local
    creating Makefile
    [root@all-demo Python-3.7.5]# make
    [root@all-demo Python-3.7.5]# make install
    

    查看版本:

    [root@all-demo Python-3.7.5]# pyenv versions
      3.7.5
    

    切换测试:

    [root@all-demo Python-3.7.5]# pyenv local 3.7.5
    [root@all-demo Python-3.7.5]# py
    pydoc3             pyenv              python3.7-config   python3-config     pyvenv-3.7
    pydoc3.6           python3            python3.7m         pyvenv
    pydoc3.7           python3.7          python3.7m-config  pyvenv-3.6
    [root@all-demo Python-3.7.5]# python3
    Python 3.7.5 (default, Dec 12 2020, 17:40:23)
    [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import os
    >>>
    [root@all-demo Python-3.7.5]# pyenv versions
    * 3.7.5 (set by /root/Python-3.7.5/.python-version)
    

    4- 常用命令详解

    设置python环境变量的几个命令

    配置当前用户的系统使用的python版本  
    pyenv global <version>   
    
    配置当前shell的python版本,退出shell则失效 
    pyenv shelll <version>    
    
    取消配置的使用python shell   
    pyenv shell --unset     
    
    配置所在项目(目录)的python版本  
    pyenv local <version>   
    

    pyenv --help:

    [root@localhost ~]# pyenv --help
    Usage: pyenv <command> [<args>]
    
    Some useful pyenv commands are:
       commands    List all available pyenv commands
       exec        Run an executable with the selected Python version
       global      Set or show the global Python version(s)
       help        Display help for a command
       hooks       List hook scripts for a given pyenv command
       init        Configure the shell environment for pyenv
       install     Install a Python version using python-build
       local       Set or show the local application-specific Python version(s)
       prefix      Display prefix for a Python version
       rehash      Rehash pyenv shims (run this after installing executables)
       root        Display the root directory where versions and shims are kept
       shell       Set or show the shell-specific Python version
       shims       List existing pyenv shims
       uninstall   Uninstall a specific Python version
       version     Show the current Python version(s) and its origin
       --version   Display the version of pyenv
       version-file   Detect the file that sets the current pyenv version
       version-name   Show the current Python version
       version-origin   Explain how the current Python version is set
       versions    List all Python versions available to pyenv
       whence      List all Python versions that contain the given executable
       which       Display the full path to an executable
    
    
  • 相关阅读:
    php && 逻辑与运算符使用说明
    php无穷递归算法
    PHP foreach 用法
    centos安装g++
    php 编译中apxs
    shutdown()
    C语言strtok()函数:字符串分割
    细谈select函数(C语言)
    setsockopt的作用
    STL之七:STL各种容器的使用时机详解
  • 原文地址:https://www.cnblogs.com/lemanlai/p/14125652.html
Copyright © 2020-2023  润新知