Ubuntu 下 pyenv+virtualenv 環境搭建

pyenv

簡單的Python版本管理。pyenv可以幫助你在一臺開發機上建立多個版本的python環境, 并提供方便的切換方法。
  正常情況下,一臺機器上只能裝兩個python版本:一個python2,一個python3。使用pyenv則可以多個python版本環境,例如 python2.7.6 python2.7.10,python3.4,python3.5等,這些版本都是可以共存的,每個python版本之間都是獨立的環境,互補影響。

virtualenv

python虛擬環境。將一個目錄建立為一個虛擬的python環境, 這樣的話, 用戶可以建立多個虛擬環境, 每個環境里面的python版本可以是不同的, 也可以是相同的, 而且環境之間相互獨立。
  首先我們可以用pyenv 安裝多個python 版本, 比如安裝了2.5, 2.6, 3.3 三個版本。 用戶可以隨意切換當前默認的python版本。 但這時候, 每個版本的環境仍是唯一的, 如果我們想在環境中安裝一些庫的話, 還是會導致這個版本的環境被修改。 這個時候, 如果我們用virtual env去建立虛擬環境, 就可以完全保證系統路徑的干凈。無論你在虛擬環境中安裝了什么程序, 都不會影響已安裝版本的系統環境

pyenv的安裝
  1. 首先需要安裝 git 與 curl
      sudo apt-get install curl git-core
  2. 安裝pyenv
      使用pyenv git項目地址中提供的自動安裝腳本來安裝
    curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
    pyenv git 地址
      這個命令會把pyenv安裝到當前用戶的 ~/.pyenv目錄下.
      同時, 我們還需要把下面代碼保存到~/.bashrc文件末尾(Ununtu下是.bashrc其他系統請參看官網):
  export PYENV_ROOT="${HOME}/.pyenv"
  if [ -d "${PYENV_ROOT}" ]; then
     export PATH="${PYENV_ROOT}/bin:${PATH}"
     eval "$(pyenv init -)"
  fi

這段代碼的作用主要是指明pyenv的位置, 以便以后可以直接在命令行里面運行pyenv命令。 保存在~/.bashrc 文件中是為了每次用戶登陸后自動生效。

  source ~/.bashrc

更新~/.bashrc文件使其修改生。然后就可以直接在命令行里面敲pyenv了

  1. 安裝 Python 的依賴包

在編譯 Python 過程中會依賴一些其他庫文件,因而需要首先安裝這些庫文件,Ubuntu下需要預先安裝的庫如下:

sudo apt-get install make build-essential libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
sudo apt-get install llvm libncurses5-dev libncursesw5-dev
sudo apt-get update```
  至此安裝完成

####pyenv的使用
1. 安裝python版本
  首先我們可以查看一下有哪些版本的python 可以安裝。會列出能所有安裝的python版本
  ```pyenv install --list```
  **安裝python版本**

pyenv install 2.7.13

  python版本號一定要與 --list 所列出來的版本號一樣
  **更新數據庫**
  在安裝 Python 或者其他帶有可執行文件的模塊之后,需要對數據庫進行更新

pyenv rehash

  **查看安裝的python版本**

pyenv versions
  輸出:* system (set by /home/zhai/.pyenv/version)
   2.7.13

system 代表當前系統的python 版本
2.7.13 是我們用pyenv安裝的
\*表示當前的python版本, 可以看到, 我們還在使用的是默認的system 自帶的python版本
  **切換python版本**
  ```pyenv glocal 2.7.13```
這條命令就是將當前python 版本切換到2.7.13
再次運行 pyenv versions, 結果如下

system
  * 2.7.1 (set by /home/zhai/.pyenv/version)

**有三種切換方式 glocal local shell**
  glocal 全局環境,在未再次使用 glocal切換環境之前,一直使用此環境。
  local 本次登錄環境。重啟后,則環境失效,并返回當前glocal的環境。
  shell 局部(臨時)環境。關閉命令行窗口,則環境失效,并返回當前glocal的環境。
  **如果要卸載某個版本的python, 可以這樣**

pyenv uninstall x.x.x```

利用virtualenv 創建虛擬python環境

pyenv已經幫我們以plugin的形式安裝好了。如果未安裝,則需要我們手動安裝一下pyenv-virtualenv git地址

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

但此時還不能使用。我們需要將以下命令添加到 ~/.bashrc文件結尾,這樣就可以在命令行使用virtualenv了

  echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
  source ~/.bashrc

這樣就可以使用了。

創建2.7.13虛擬環境

  pyenv virtualenv 2.7.13 env2713

這條命令在本機上創建了一個名為env2713的python虛擬環境,這個環境的真實目錄位于:~/.pyenv/versions/

注意,命令中的 ‘2.7.13’ 必須是一個安裝前面步驟已經安裝好的python版本, 否則會出錯。
  然后我們可以繼續通過 ‘pyenv versions’ 命令來查看當前的虛擬環境, 結果如下:

  * system (set by /home/zhai/.pyenv/version)
    2.7.13
    env2713

激活虛擬環境

  pyenv activate env271

如果要切換回系統環境, 運行這個命令即可

  pyenv deactivate

刪除這個虛擬環境,只要直接刪除它所在的目錄就好:

  rm -rf ~/.pyenv/versions/env2713
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容