Python發展至今,版本眾多,在使用過程中經常遇到第三方庫依賴的Python版本和系統Python版本不一致的情況。同時又因系統底層需調用當前版本Python,所以不能隨意變更當前系統Python版本。如此情境下就會有Python多版本共存的情況。於是,Python多環境管理工具應運而生。Pyenv和Virtualenv均為Python管理工具,不同的是,Pyenv是對python的版本進行管理,實現不同版本之間的切換和使用;而Virtualenv則通過創建虛擬環境,實現與系統環境以及其他python環境的隔離,避免相互干擾。
1、Pyenv的部署和使用
Pyenv是一個簡單的python版本管理工具,以前叫做Pythonbrew。它讓你能夠方便地切換全局python版本,安裝多個不同的python版本,設置獨立的某個文件夾或者工程目錄特異的python版本,同時創建python虛擬環境(virtualenv's)。所有這些操作均可以在類Unix系統的機器上(Linux和OS X)不需要依賴python本身執行,而且它工作在用戶層,不需要任何sudo操作。
(1)部署
pyenv作為python的版本管理工具,通過改變shell的環境變量來切換不同的python版本,以達到多版本共存的目的。該工具不支持windows系統。具體工作原理如下:
接下來開始部署pyenv
# git clone https://github.com/pyenv/pyenv.git ~/.pyenv
# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
# echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
# exec "$SHELL"
若只有系統一個python版本,執行pyenv versions會顯示:
若系統里有多個python版本,執行pyenv versions會顯示:
實踐操作:
system顯示的是2.7.5版本,要再切回來的話執行:pyenv global system 而不是pyenv global 2.7.5
2、Virtualenv的部署與使用
virtual是底層基於python開發的python環境隔離工具,其通過虛擬目錄的方式來實現多環境並存。工作原理如下:在你所需要的地方創建工作目錄,該目錄類似系統安裝的python目錄,保留完整的python環境、解釋器、標准庫和第三方庫等,當我們需要的時候,切換環境變量激活即可使用。
安裝pip:
yum -y install python-pip python-devel
實踐操作:
[root@localhost ~]# virtualenv /data/datafile/software/virtualpy # 創建虛擬工作目錄
New python executable in /data/datafile/software/virtualpy/bin/python2
Also creating executable in /data/datafile/software/virtualpy/bin/python
Installing setuptools, pip, wheel...done.
[root@localhost ~]# source /data/datafile/software/virtualpy/bin/activate # 切換並激活虛擬工作環境
(virtualpy) [root@localhost ~]# deactivate # 退出虛擬工作目錄
[root@localhost ~]#