簡介
如果你使用Python開發,對於不同的開發框架或應用肯定會有Python多版本共存的情況,此時Python多環境管理工具就可以幫你快速解決此問題,以便將精力專注開發。
今天我們就來介紹下Python多環境管理的幾種工具:
- Anaconda
- Virtualenv
- Virtaulenvwrapper
通過對以上工具的講解,你以後就再也不用擔心Python多版本共存的問題了。
Anaconda
Anaconda多應用在科學計算中,但是它可以很方便的對各個Python環境進行切換;而且自動包管理器conda可以安裝軟件包的多個版本和依賴。換句話說,我們可以使用conda命令安裝各種Python工具,就像yum和pip一樣方便。
1.安裝部署
<code>wget
https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
bash
Miniconda2-latest-Linux-x86_64.sh
vim
/root/.bashrc
export
PATH="$PATH:/usr/local/miniconda2/bin"
conda
list
/<code>
安裝過程是交互的,安裝路徑為 /usr/local/miniconda2 。
注意:
- 如果你已經安裝了python環境,最好將conda的環境變量加在PATH最後,否則會優先使用/usr/local/miniconda2/bin下的python命令,造成不必要的麻煩。
- conda包括完整版的anaconda和最小化版miniconda。anaconda包含720多個開源安裝包,安裝完成至少需要3G空間;miniconda安裝需要大約400M空間。我們使用miniconda就足夠。
2.管理環境
(1)創建新的環境
<code>conda
create -n science numpy scipy matplotlib
或
conda
create -n science -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
numpy
scipy matplotlib
或
/<code>
通過以上命令都會創建一個名為science的環境,默認使用python2(若使用python3需要指定版本),並且安裝numpy scipy matplotlib模塊。不過由於使用官方的安裝源很慢,我們在此使用國內的清華安裝源。
(2)查看當前所有環境
<code> conda info --envs science * /usr/local
/miniconda2/envs/science root /usr/local
/miniconda2source
activate science (science) root@test
:~/<code>
(3)刪除環境
<code>condaremove
-n science_python3 /<code>
(4)添加國內安裝源
<code>condaconfig
condaconfig
#查看配置 condaconfig
/<code>
Anaconda環境管理中除了使用conda來安裝使用的python依賴包外,還可以使用pip,但是必須是“/usr/local/miniconda2”路徑下的,否則將會使用操作系統自動的python,安裝的包並不會加載到Anaconda環境中。
Virtualenv
Virtaulenv的原理是把系統Python複製一份到Virtualenv的環境,用命令source venv/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變量,讓命令Python和pip均指向當前的virtualenv環境。Virtaulenv相較於Anaconda,更多應用在開發環境。
1.安裝部署
<code>pip
install virtualenv
或
easy_install
virtualenv
/<code>
2.創建虛擬環境
<code>[root@test:/virtual_protect
] [root@test:/virtual_protect
] [root@test:/virtual_protect
] New python executablein
/root/virtual_protect/venv/bin/python Installing setuptools, pip, wheel...done./<code>
virtualenv venv 命令將會在virtual_project目錄中創建一個文件夾,包含了Python可執行文件,以及 pip 庫的一份拷貝,這樣就能安裝其他包了。
如果此時你的系統裡有其他版本python,可以使用-p或–python參數來指定虛擬環境使用哪個版本的python,如下:
<code>virtualenv -p /usr/local
/python3 venv/<code>
3.啟動虛擬環境
<code>[root@test:/virtual_protect
] (venv) [root@test:/virtual_protect
] pip (8.1
.2
) setuptools (28.3
.0
) wheel (0
.30.0
a0
)/<code>
登陸虛擬環境通過pip查看安裝的包並沒有系統自帶python中安裝的,這是因為virtualenv 運行時,默認自帶–no-site-packages參數,將不會包含系統自帶python安裝的包。我們可以通過使用–system-site-packages參數來使虛擬環境包含系統python安裝的包。
還有一種方法可以使虛擬環境包含系統自動python安裝的包:
<code>pip
freeze > requirements.txt
pip
install -r requirements.txt
/<code>
4.退出虛擬環境
<code>deactivate/<code>
對於Virtualenv來說並不會像Anaconda那樣幫你安裝其他版本的Python,它是依賴於你的操作系統已經安裝的Python,在創建虛擬環境時指定Python版本。
Virtaulenvwrapper
Virtaulenvwrapper是Virtualenv的擴展包,用於更方便管理虛擬環境,它可以將將所有虛擬環境整合在一個目錄下、管理(新增,刪除,複製)虛擬環境、切換虛擬環境等。
1.安裝配置
<code> pipinstall
virtualenvwrapper mkdir /virtualenv_project [root@test
:~/virtual_protect]export
WORKON_HOME=~/virtualenv_projectsource
/usr/local
/bin
/virtualenvwrapper.sh [root@test
:~/virtual_protect]/<code>
2.創建虛擬環境
<code>[root@test:~/virtual_protect
] New python executablein
/root/virtualenv_project/venv1/bin/python Installing setuptools, pip, wheel...done. [root@test:~/virtual_protect
] New python executablein
/root/virtualenv_project/venv2/bin/python Installing setuptools, pip, wheel...done./<code>
其中mkvirtualenv命令類似與virtualenv命令,也可以通過-p、–no-site-packages、–system-site-packages等參數進行配置。
3.列出虛擬環境並切換
<code> [root@test:~/virtual_protect
] venv1 venv2 [root@test:~/virtual_protect
] (venv1) [root@test:~/virtual_protect
] (venv2) [root@test:~/virtual_protect
]/<code>
4.退出並刪除虛擬環境
<code>deactivate
deactivate/<code>
Virtaulenvwrapper只是是Virtualenv的擴展包,底層是需要和Virtualenv配合使用的,只不過使操作更簡便些罷了。
總結
經過以上介紹,我們已經學會了Python的多環境管理,也瞭解了Anaconda、Virtualenv、Virtaulenvwrapper的工作方式及應用領域,我們根據自己的實際情況按需選擇。