通常mac自带一个python版本,称为系统版本。对于开发者而言,确定不够用啦。因此须要在同一个mac上组建不一样的开发环境而且不会冲突。python
pyenv使你能够在不一样python版本之间轻松切换。它简单,低调,而且遵照UNIX的传统:single-purpose tools that do one thing well。git
pyenv是基于rbenv和ruby-build项目,对python作了定制修改。github
pyenv是第三方的,开源的多版本的Python管理工具,同时支持Python2和Python3.sql
pyenv-virtualenv插件是虚拟出同一版本的python可是不一样依赖库版本的开发环境。这对于在同一台电脑上开发不一样项目很是方便。shell
等等,难道官方没有相似的工具吗?ruby
是有的,在Python3.3标准库中有一个venv模块就是干这个活的,可是,Python3.3以前的版本都很差用,鉴于如今不少项目是基于Python2.x的,因此......bash
等等,彷佛我还据说过virtualenv的东西也有相似的功能?curl
virtualenv同时支持Python2和Python3,很是流行。它建立的虚拟环境能够指定Python解释器,并选择不继承基础版本的包。工具
那我仍是用virtualenv吧。ui
是能够的,下面聊聊如何安装pyenv及其pyenv-virtualenv插件。
1.clone一个pyenv项目
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
2.定义环境变量
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
对于zsh,使用~/.zshenv替换~/.bash_profile
对于Ubuntu和Fedora,~/.bashrc用替换~/.bash_profile
若是zsh和bash切换着用,那么./zshrc和./bashrc都要改,否则会出现找不到命令的报错
3.增长pyenv init到shell
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
对于zsh,使用~/.zshenv替换~/.bash_profile
对于Ubuntu和Fedora,~/.bashrc用替换~/.bash_profile
若是zsh和bash切换着用,那么./zshrc和./bashrc都要改,否则会出现找不到命令的报错
4.重启shell
$ exec "$SHELL"
1.用homebrew安装
$ brew update $ brew install pyenv
2.按照通用版第3步开始安装
1.clone一个pyenv项目
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
2.定义环境变量
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
对于zsh,使用~/.zshenv替换~/.bash_profile
对于Ubuntu和Fedora,~/.bashrc用替换~/.bash_profile
若是zsh和bash切换着用,那么./zshrc和./bashrc都要改,否则会出现找不到命令的报错
3.重启shell
$ exec "$SHELL"
1.用homebrew安装
$ brew install pyenv-virtualenv
2.同上第2步开始作
# 通用
rm -rf $(pyenv root)
# Mac brew uninstall pyenv
1.查看可用的版本
$ pyenv install --list
2.选择安装一个,如
$ pyenv install 3.6.2
小技巧: 执行上面命令后,会从给定的网址中下载安装文件Python-3.6.2.tar.xz。但因为文件很大,下载须要好久。建议作法是:先执行以上命令而后立刻中断安装,这样就知道 pyenv 要下载的文件的连接。而后用户本身用其余更快的方式(好比wget、迅雷等等)从该连接中下载安装文件并将安装文件移动到 ~/.pyenv/cache 目录下(该目录默认不存在,用户要自行新建),再执行上面的命令。编译安装自己也须要较长时间。默认安装路径是~/.pyenv/versions/3.6.2/
若是安装报错:
BUILD FAILED (Ubuntu 16.04 using python-build 1.1.3-21-g005a2e8)
解决方法以下:
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev
dnf install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel
brew install readline xz
3.查看版本
$ pyenv versions (查看全部版本) * system (set by /root/.pyenv/version) 2.7.13 3.6.2
$ pyenv version (version 查看当前版本)
system (set by /root/.pyenv/version)
system 表明当前系统的python 版本
*表示当前的python版本, 能够看到, 咱们还在使用的是默认的system 自带的python版本
4.切换python默认版本
$ pyenv global 3.6.2
$ pyenv versions system 2.7.1 * 3.6.2 (set by /root/.pyenv/version)
5.建立一个3.6.2的虚拟环境
$ pyenv virtualenv 3.6.2 env362
这条命令在本机上建立了一个名为env362的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/
再次输入
$ pyenv versions
如图
env362是3.6.2/envs/env362的软链接
3.6.2是官方版本
5.使用3.6.2的虚拟环境
$ pyenv activate env362
如图所示
下面基本上你就能够在这个虚拟环境里面随心所欲了,不再用担忧系统路径被搞乱的问题了。
6.关闭3.6.2的虚拟环境
$ pyenv deactivate
7.卸载3.6.2的虚拟环境
$ pyenv uninstall env362
打开pycharm选择Preferences|Project interpreter|showall就能够选择了。