虛擬環境 virtual environment
它是一個虛擬化,從電腦上獨立開闢出來的環境。通俗的來講,虛擬環境就是藉助虛擬機docker來把一部分內容獨立出來,我們把這部分獨立出來的東西稱之為 容器,在這個容器中,我們可以只安裝我們開發需要依賴的包,各個容器之間相互隔離,互不影響。
為什麼要搭建虛擬環境?
在使用 Python 開發的過程中,工程一多,難免會碰到不同的工程依賴不同版本的庫的問題;亦或者是在開發過程中不想讓物理環境裏充斥各種各樣的庫,引發未來的依賴災難。此時,我們可以使用虛擬環境 可以搭建獨立的運行環境,使得單個項目的運行環境與其它項目互不影響。
另外更值得一提的是:在虛擬環境中使用pip安裝,不需要向系統目錄中寫入數據,可以繞過某些系統的權限設置。
如何搭建虛擬環境?
我們可以通過virtualenv和virtualenvwrapper來實現虛擬環境的搭建。
一、virtualenv
安裝 virtualenv
可以通過python包管理工具pip進行安裝:
pip install virtualenv
亦或者使用anaconda命令安裝:
conda install virtualenv
使用 virtualenv
創建虛擬環境
virtualenv path/virtualenv_name
指定特定的python版本創建虛擬環境加上 -p 參數即可:
virtualenv -p pythonx(.x) path/vituralenv_name
比如我們創建 spider 工程使用 scrapy 框架去爬取某個網站的信息,我們假設這個工程在路徑為 ~/code/spider ,並且把虛擬環境直接放在 spider 工程目錄下。
virtualenv ~/code/spider/py3_virtualenv
這樣虛擬環境 py3_virtual 就創建好了。此時可以看到,在spider/py3_virtualenv目錄下面會有3個目錄被創建:
bin中包含一些在這個虛擬環境中可以用的命令,以及開啓虛擬環境的腳本activate;include中包含虛擬環境中的頭文件,包括python的頭文件;lib中就是一些開發所依賴的庫了....
此時,我們僅僅是創建了虛擬環境,並沒有真正進入到虛擬環境中。
激活虛擬環境
只需要開啓虛擬環境bin目錄中的腳本 activate:
source virtualenv_path/bin/activate
對於spider工程來説,進入剛剛創建好的虛擬環境:
source ~/spider/py3_virtualenv/bin/activate
當終端命令的用户前多出(虛擬環境名稱)後,代表進入虛擬環境。
接下來就可以安裝我們需要的 scrapy 庫了......
退出虛擬環境
只需要通過以下命令即可退出當前虛擬環境:
deactivate
此時就回到了本機的物理環境中,如果你哪天忘記了虛擬環境的位置,那麼以後就無法再次開啓該虛擬環境!
刪除虛擬環境
直接將改革創建虛擬環境的py3_virtualenv文件夾 刪除掉即可.....
二、virtualenvwrapper
有了 virtualenv 為什麼還要學習使用 virtualenvwrapper?
上面 virtualenv 結束時候提到:如果忘記了虛擬環境的位置,那麼以後就無法再次開啓該虛擬環境!
virtualenv 的最大的缺點就是,每次開啓虛擬環境之前,要在虛擬環境所在目錄的 bin 目錄下 開啓虛擬環境的腳本 activate,因此我們需要記住每個虛擬環境所在的目錄。
而 virtualenvwrapper 是通過配置環境變量 WORKON_HOME 把所有的虛擬環境都放在環境變量 WORKON_HOME 目錄中,方便了虛擬環境的管理,且省去了每次開啓虛擬環境的 source 操作,而且不同虛擬環境之間可以直接進行切換,使得虛擬環境更加好用。
安裝 virtualenvwrapper
可以通過python包管理工具pip進行安裝:
pip install virtualenvwrapper
亦或者使用anaconda命令安裝:
conda install virtualenvwrapper
使用 virtualenvwrapper
使用前 首先需要對 virtualenvwrapper 進行配置,它需要指定一個 WORKON_HOME 環境變量,並且運行一下初始化工具 virtualenvwrapper.sh,virtualenvwrapper.sh 腳本在 /usr/local/bin/ 目錄下。 WORKON_HOME 環境變量的路徑就是來存放各種虛擬環境的目錄,我們通常設置 WORKON_HOME 環境變量路徑為 ~/.virtualenvs,即命令如下:
export WORKON_HOME='~/.virtualenvs'
source /usr/local/bin/virtualenvwrapper.sh
由於每次使用都需要執行這兩次操作,因此我們可以寫在終端的配置文件中。例如,如果使用 bash,則需要將以上兩條命令添加到 ~/.bashrc 中,然後再執行 source ~/.bashrc 命令。
這樣每次啓動終端的時候就會自動執行上面兩條指令。
如果你的 Linux 系統僅僅安裝了 python3.x 版本,可能會出現virtualenvwrapper.sh 中 VIRTUALENVWRAPPER_PYTHON 路徑錯誤(點擊該文字進行文章轉跳)
創建虛擬環境
mkvirtualenv vituralenv_name
執行以上命令後,就會創建一個名為 vituralenv_name 的虛擬環境,且它被存放在環境變量 WORKON_HOME 目錄下。
注意:使用 virtualenvwrapper 的 mkvirtualenv 命令創建虛擬環境後,直接自動激活並進入該虛擬環境。
指定特定的python版本創建虛擬環境加上 -p 參數即可:
mkvirtualenv -p pythonx(.x) vituralenv_name
進入虛擬環境
virtualenvwrapper 可以通過 workon 進入虛擬環境。
workon virtualenv_name
而且可以通過 workon 命令直接進行虛擬環境之間的切換!
退出虛擬環境
virtualenvwrapper 同 virtualenv 一樣,直接通過 deactivate 命令退出虛擬環境。
deactivate
刪除虛擬環境
rmvirtualenv vituralenv_name
列出當前所有的虛擬環境
# 方式一:
workon
# 方式二:
lsvirtualenv -b
特別聲明一下:virtualenvwrapper中的命令支持tab鍵自動補全的哦!