使用pyenv與pyenv-virtualenv管理Python版本與虛擬環境

在上一篇博客中,我介紹瞭如何在ubutnu 18.04中安裝pyenv。這一次我將介紹如何使用pyenv與pyenv-virtualenv管理Python版本與虛擬環境。python

0.相關命令

首先使用pyenv -h命令能夠查看可用命令git

Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    列出全部pyenv可用命令
   local       顯示或設置本地的Python版本
   global      設置或顯示全局的Python版本
   shell       設置或顯示Shell使用的Python版本
   install     使用python-bulid安裝指定Python版本
   uninstall   卸載特定Python版本
   rehash      Rehash pyenv shims (run this after installing executables)更新pyenv墊片路徑的哈希值(安裝後運行這條命令)
   version     顯示當前Python版本以及其路徑
   versions    顯示pyenv全部可用Python版本
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

1.安裝Python前準備

查看全部可用Python版本github

$ pyenv install --list

因爲我安裝前沒有裝部分依賴,編譯時報出一下錯誤:web

WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

因此在安裝前,先把一些依賴包裝上sql

$ sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libreadline-dev libsqlite3-dev

2.開始安裝 Python 3.7.3

咱們須要使用install命令安裝某一特定版本的pyenv,下面以安裝 Python 3.7.3爲例:shell

$ pyenv install 3.7.3 -v

在線安裝速度有可能很慢,能夠自行到Python官網下載源碼編譯:this

$ mkdir -p ~/.pyenv/cache
$ cd ~/.pyenv/cache
$ # 在https://www.python.org/downloads/source/有不一樣版本選擇
$ wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
$ pyenv install 3.7.3 -v

安裝完以後rehash一下spa

pyenv rehash

3.Python版本控制

查看當前Python版本和全部版本版本控制

$ # 查看當前版本, 默認版本是系統內置的版本
$ pyenv version      
system (set by /home/lucas/.pyenv/version)
$ # 查看全部版本,
$ pyenv versions
* system (set by /home/lucas/.pyenv/version)
  3.7.3

下面三條命令涉及Pyenv版本切換的做用範圍code

$ # 將全部用戶的Python版本切換爲特定版本號(不推薦,由於有不少程序仍是依賴舊版本Python,這樣很容易系統崩潰)
$ pyenv global [版本號]
$ # 將當前Shell會話的Python版本切換爲特定版本
$ pyenv shell [版本號]
$ # 將當前文件夾及子文件夾的Python版本切換爲特定版本
$ pyenv local [版本號]

若是要刪除某一Python版本

$ pyenv uninstall [版本號]

4.Python虛擬環境建立

$ # 虛擬環境後面的命名能夠隨便改,改爲本身喜歡的便可
$ pyenv virtualenv 3.7.3 pyweb373

建立完虛擬環境後查看是否建立成功

$ pyenv versions                 
* system (set by /home/lucas/.pyenv/version)
  3.7.3
  3.7.3/envs/pyweb373
  pyweb373

而後就能夠進入項目文件夾中,把Python切換到虛擬環境中

$ cd ~/project1
$ pyenv local pyweb373

這樣,你就成功地將這個項目的環境換成虛擬環境,能夠愉快地安裝第三方庫、擼代碼了。

可能遇到的問題

1.編譯報錯:No module named '_ctypes'

解決:輸入下面命令安裝

sudo apt-get install libffi-dev

2.版本切換沒效果

解決:新建一個Shell會話


感謝閱讀。

相關文章
相關標籤/搜索