经常遇到这样的情况:
1、安装pyenv
brew install pyenv
2、根据提示需要添加
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi export PYENV_ROOT=/usr/local/var/pyenv
这里注意了,如果使用的zsh,务必不要在zshrc配置里面的插件开启pyenv。会导致终端无限循环退出,只需要在你的zshrc结尾处追加上面两行就行了。笔者亲测。
3、查看当前激活的是那个版本的Python
pyenv version
4、查看已经安装了那些版本的Python
pyenv versions
5、安装指定版本的Python
pyenv install 3.5.0 #安装完成后必须rehash pyenv rehash
6、切换和使用指定的版本Python版本有3种方法:
λ ~/ pyenv pyenv 20151006 Usage: pyenv[ /github.com/yyuu/pyenv#readme] Some useful pyenv commands are: commands 列出所有pyenv可用的命令 local 设置或显示本地应用程序特定的Python版本 global 设置或显示系统全局的Python版本 shell 设置或显示shell外壳的Python版本 install 使用python-build安装指定Python版本 uninstall 卸载已经安装的Python rehash 刷新 pyenv shims (安装之后运行这个) version 查看当前使用的版本 versions 列出已经安装的Python版本,当前激活版本用*号标注 which 显示的完整路径的可执行文件 whence 列出包含给定的可执行所有的Python版本 See `pyenv help ' for information on a specific command. For full documentation, see: https:/
特别建议:
系统全局用系统默认的Python比较好,不建议直接对其操作 pyenv global system
用local进行指定版本切换,一般开发环境使用。 pyenv local 2.7.10
对当前用户的临时设定Python版本,退出后失效 pyenv shell 3.5.0
取消某版本切换 pyenv local 3.5.0 --unset
优先级关系:shell——local——global
virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:
Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:
1、安装和使用方法
#安装 pip install virtualenv pip install virtualenvwrapper #创建虚拟环境 mkvirtualenv [虚拟环境名称]
此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,先别急,打开这个文件看看,里面有安装步骤,我们照着操作把环境设置好。
如果你使用的bash或者zsh
#创建目录用来存放虚拟环境 mkdir $HOME/.virtualenvs #在. bash_profile 或者 .zshrc 追加两行 export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh 运行: source ~/.bashrc source ~/.zshrc 此时virtualenvwrapper就可以使用了。
2、创建虚拟环境例如:
#在当前的环境的Python版本下创建名称为py3dev的虚拟环境。 mkvirtualenv py3dev
默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 –no-site-packages建立虚拟环境
例如:
mkvirtualenv --no-site-packages [虚拟环境名称] mkvirtualenv --no-site-packages py3dev
3、查看创建的虚拟环境:
λ ~/ lsvirtualenv py2dev ====== py3dev ====== λ ~/ workon py2dev py3dev
4、启动某虚拟环境:
works [虚拟环境名称] workon py3dev
5、删除某个虚拟环境:
rmvirtualenv [虚拟环境名称] rmvirtualenv py3dev
6、删除某个虚拟环境需要先退出这个环境
deactivate
三、融合 pyenv、virtualenv、Virtaulenvwrapper 管理Python版本和虚拟环境
如何对Python2.7.10和Python3.5.0版本分别创建虚拟环境?
有这三个工具其实非常简单,主要是确保环境切换成功后在创建虚拟环境。
#确保切换成功,我建议 source .zshrc 一下在切换 #安装全新的Python2.7.10版本 pyenv install 2.7.10 pyenv rehash #切换到刚安装的这个版本 pyenv local 2.7.10 #确保切换成功 source .zshrc #验证一下版本,pip发现里面包很少 pip list #验证版本 python -V #务必在这个新的2.7.10中安装 pip install virtualenv pip install virtualenvwrapper #务必 source .zshrc #创建2.7.10的开发环境 mkvirtualenv py2dev #创建完某版本的开发环境后务必退出,当前虚拟环境,不然就是虚拟环境中在创建了。 deactivate #退出2.7.10环境 pyenv local --unset 2.7.10 source .zshrc
3.5.0的虚拟环境创建也是一样,因此验证2.7.10和3.5.0的虚拟环境
(py3dev)☁ ~ deactivate ☁ ~ workon py2dev (py2dev)☁ ~ python -V Python 2.7.10 (py2dev)☁ ~ deactivate ☁ ~ workon py3dev (py3dev)☁ ~ python -V Python 3.5.0 (py3dev)☁ ~ deactivate ☁ ~
至今没找到切换Python版本的时候要加载 source .zshrc。经过无数次试验,结果是务必这么干,不知道为什么。
#愉快无痛升级,一键升级所有PIP包 pip list --outdated | grep '^[a-z]* (' | cut -d " " -f 1 | xargs pip install -U