在上一篇博客中,我介紹了如何在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會話
感謝閱讀。