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


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

0.相關命令

首先使用pyenv -h命令可以查看可用命令

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版本

$ pyenv install --list

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

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?

所以在安裝前,先把一些依賴包裝上

$ 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為例:

$ pyenv install 3.7.3 -v

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

$ 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一下

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版本切換的作用范圍

$ # 將所有用戶的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會話


感謝閱讀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM