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就能夠選擇了。

相關文章
相關標籤/搜索