Python版本管理神器 - pyenv(Mac)

3,859 阅读1分钟

这是我参与更文挑战的第6天,活动详情查看: 更文挑战

Python版本比较多,Python2 和 Python3 相差非常大,很多项目需要跑在同一台服务器上,我们可以选择直接运行,也可以选择使用 docker。如果用 docker,那就不需要隔离环境了,如果要直接运行在服务器上,那就必须有隔离Python的环境。比如有的项目使用 python 3.5,有的项目使用 python 3.7,此时我们可以借助 pyenv 帮助我们完美的隔离环境,让多个版本的 python 没有任何冲突,完美共存。

1 安装

➜  ~ brew install pyenv

2 配置环境变量

➜  ~ vim .zshrc
export PYENV_ROOT=/usr/local/var/pyenv
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

3 pyenv 使用

  • 查看正在使用的python版本

    ➜  ~ pyenv version
    3.6.8 (set by /usr/local/var/pyenv/version)
    
  • 查看系统支持的python版本

    ➜  ~ pyenv versions
      system
    * 3.6.8 (set by /usr/local/var/pyenv/version)
    

    * 表示正在使用的python版本, system 表示系统自带的python

  • 查看可以安装的python

    ➜  ~ pyenv install -l
    Available versions:
      2.1.3
      2.2.3
      2.3.7
      2.4.0
      2.4.1
      2.4.2
      2.4.3
      2.4.4
      2.4.5
      2.4.6
      2.5.0
      2.5.1
    
  • 安装指定版本的pyton

    ➜  ~ pyenv install 3.6.8
    
  • python版本切换

    1 全局切换
    ➜  ~ pyenv global 3.6.8
    2 目录切换
    ➜  ~ pyenv local system
    

4 virtualenv

4.1 安装

# 采用pip2安装
➜  ~ pip install virtualenvwrapper

4.2 配置

➜  ~ vim .zshrc
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_SCRIPT=/Users/mervinwang/Library/Python/2.7/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/Users/mervinwang/Library/Python/2.7/bin/virtualenv
source /Users/mervinwang/Library/Python/2.7/bin/virtualenvwrapper.sh 

4.3 使用示例

4.3.1 创建python2虚拟环境

➜  ~ mkdir py{2,3}
➜  ~ cd py2
➜  py2 pyenv local system
➜  py2 mkvirtualenv -p python2 py2-env
(py2-env) ➜  py2 python -V
Python 2.7.16

4.3.2 创建python3虚拟环境

➜  ~ cd py3
➜  py3 pyenv local 3.6.8             
➜  py3 rmvirtualenv py3-env 
Removing py3-env...
➜  py3 mkvirtualenv -p python3.6 py3-env
(py3-env) ➜  py3 python -V                        
Python 3.6.8