1. 程式人生 > 其它 >mac上python多版本管理利器pyenv

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