MAC下pyenv和pyenv-virtualenv插件初探

为何会使用pyenv和pyenv-virtualenv插件

通常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插件。

安装pyenv

通用版

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"

Mac版

1.用homebrew安装

$ brew update
$ brew install pyenv

2.按照通用版第3步开始安装

 

安装pyenv-virtualenv插件

通用版

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"

Mac版

1.用homebrew安装

$ brew install pyenv-virtualenv

2.同上第2步开始作

卸载 pyenv

# 通用
rm
-rf $(pyenv root)
# Mac brew uninstall pyenv

 

安装并使用python版本

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)

解决方法以下:

  • Ubuntu/Debian:
    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
  • Fedora/CentOS/RHEL:
    dnf install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel
  • Mac OS X:
    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中使用虚拟环境

打开pycharm选择Preferences|Project interpreter|showall就能够选择了。

相关文章
相关标签/搜索