一 前言
开发不同的项目的时候有可能产生安装不同python 版本的需求,那么如何管理多个python版本呢?有大神开发了工具 --pyenv 来解决多版本管理的问题。
pyenv 适合于*Nix系统,估计会有朋友问题为啥不适合windows,看图说话
本文主要讲述基于mac os环境的安装使用,其他*nix系统使用方式类似
安装
1 brew install
brew install pyenv
2 基于git 源码的安装
git clone https://github.com/yyuu/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
初始化 环境变量
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile source ~/.bash_profile
或者
exec $SHELL
注意:
如果使用了zsh 把下面指令的~/.bash_profile修改为~/.zshrc或者~/.zshenv,建议使用zshrc(zsh默认启动会执行该脚本)。
验证是否安装成功
➜ ~ pyenv -v pyenv 1.2.1-1-g6f27c91
二 使用
2.1 常用指令集:
查看可安装的Python版本
pyenv install --list
安装特定版本的Python
pyenv install <version> pyenv install 3.6.1
查看pyenv已安装的Python版本,如果装了其他版本那么会显示多个
➜ ~ pyenv versions * system (set by /Users/yangyi/.python-version) 3.6.1
卸载指定的版本
pyenv uninstall <version>
切换本地Python版本
➜ ~ pyenv local system ➜ ~ python Python 2.7.10 (default, Feb 6 2017, 23:53:20) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> ➜ ~ pyenv local 3.6.1 ➜ ~ python Python 3.6.1 (default, Jan 18 2018, 09:46:41) [GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> ➜ ~
切换全局的Python版本
pyenv global 3.6.1
2.2 pyenv和virtualenv的搭配使用
pyenv-virtualenv是pyenv的一个plugin,可以用来创建基于不同Python版本的虚拟环境。
# 安装virtualenv插件
➜ ~ cd .pyenv/plugins ➜ plugins git:(master) git clone https://github.com/yyuu/pyenv-virtualenv.git Cloning into 'pyenv-virtualenv'... remote: Counting objects: 1943, done. remote: Total 1943 (delta 0), reused 0 (delta 0), pack-reused 1943 Receiving objects: 100% (1943/1943), 547.68 KiB | 16.00 KiB/s, done. Resolving deltas: 100% (1332/1332), done. Checking connectivity... done.
创建虚拟环境 语法为:
pyenv virtualenv 版本号 虚拟环境名,比如创建2.7版本的虚拟环境
➜ ~ pyenv virtualenv mypro_27 New python executable in /Users/yangyi/.pyenv/versions/mypro_27/bin/python Installing setuptools, pip, wheel...done. Ignoring indexes: https://pypi.python.org/simple ➜ python git:(master) ✗ pyenv virtualenvs pyenv: version `3.6.1' is not installed (set by /Users/yangyi/python/.python-version) mypro_27 (created from /System/Library/Frameworks/Python.framework/Versions/2.7) ➜ python git:(master) ✗ ➜ python git:(master) ✗ pyenv activate mypro_27 pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior. (mypro_27) ➜ python git:(master) ✗ (mypro_27) ➜ python git:(master) ✗ (mypro_27) ➜ ~ pyenv deactivate # 退出
本文算是一篇how to 文档,日常开发过程中使用 pyenv install/local /global 进行切换基本多版本环境基本满足需求,有兴趣的朋友可以深入探索 pyenv 的各种使用方式。