Python多環境管理,你需要知道的幾種方法

Python多環境管理,你需要知道的幾種方法

簡介

如果你使用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 。

注意:

  1. 如果你已經安裝了python環境,最好將conda的環境變量加在PATH最後,否則會優先使用/usr/local/miniconda2/bin下的python命令,造成不必要的麻煩。
  2. 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

/miniconda2

source

activate science (science) root@

test

:~/<code>

(3)刪除環境

<code>conda 

remove

-n science_python3 /<code>

(4)添加國內安裝源

<code>conda 

config

conda

config

#查看配置 conda

config

/<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 executable

in

/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

a

0

)/<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> 
pip 

install

virtualenvwrapper mkdir /virtualenv_project [root@

test

:~/virtual_protect]

export

WORKON_HOME=~/virtualenv_project

source

/usr/

local

/

bin

/virtualenvwrapper.sh [root@

test

:~/virtual_protect]/<code>

2.創建虛擬環境

<code>[root@test

:~/virtual_protect

] New python executable

in

/root/virtualenv_project/venv1/bin/python Installing setuptools, pip, wheel...done. [root@test

:~/virtual_protect

] New python executable

in

/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的工作方式及應用領域,我們根據自己的實際情況按需選擇。


分享到:


相關文章: