mac上python多版本管理利器pyenv

为什么用pyenv?

公司的某些项目只能用python3.6.8, 某些却不限制版本,mac自带的python还是python2, 只好在电脑上再装几个python,几个版本搅在一起非常不好管理,最后发现了pyenv这个好东西,它能安装不同版本的python, 配合pyenv-virtualenv一起使用还能方便地创建不同版本的虚拟环境。
附:pyenv github官网

安装pyenv

由于pyenv是直接用源码编译构建python, 所以在安装前要先下载一些依赖把mac编译环境配置好。

  1. 安装Xcode Command Line Tools (xcode-select --install) 和Homebrew
  2. 安装依赖
    $ brew install openssl readline sqlite3 xz zlib
  3. 安装pyenv
    brew update
    brew install pyenv
    
  4. 配置pyenv的环境变量(不同的shell终端用的命令不一样,具体参考官网,我是用的zsh)
    echo 'eval "$(pyenv init --path)"' >> ~/.zprofile
    echo 'eval "$(pyenv init -)"' >> ~/.zshrc
    

用pyenv安装不同版本的python

  1. 查看pyenv支持的所有版本的python
    pyenv install --list

  2. 安装一个版本
    pyenv install -v 3.7.2
    pyenv install -v 3.8.0

  3. 查看安装的位置

    ~ ls ~/.pyenv/versions/
    3.6.8  3.7.2 3.8.0
    

pyenv其他命令

具体看github COMMANDS.md

pyenv与pyenv-virtualenv

pyenv 支持venv, 但是最好还是用pyenv-virtualenv。下面的例子将展示给两个项目分别创建不同版本的虚拟环境。

  1. 给project1创建3.6.8的环境
    $ cd project1/
    $ pyenv which python
    /usr/bin/python
    $ pyenv virtualenv 3.6.8 project1
    ...
    $ pyenv local project1
    $ python -V
    /home/aa/.pyenv/versions/project1/bin/python
    
  2. 回到home目录,会发现python是系统版本
    $ cd ~
    $ pyenv which python
    /usr/bin/python
    
  3. 给project2创建3.7.2的版本
    $ cd project2/
    $ pyenv which python
    /usr/bin/python
    $ pyenv virtualenv 3.7.2 project2
    ...
    $ pyenv local 3.7.2
    $ pyenv which python
    /home/realpython/.pyenv/versions/3.7.2/bin/python
    
  4. 切换目录查看python版本是否正确
    $ cd project2/
    $ python -V
    Python 3.7.2
    $ cd ../project1
    $ python -V
    Python 3.6.8
    
posted @ 2022-02-21 16:37  水天需  阅读(455)  评论(0编辑  收藏  举报