博客 / 詳情

返回

虛擬環境的搭建 virtualenv 和 virtualenvwrapper

虛擬環境 virtual environment

  它是一個虛擬化,從電腦上獨立開闢出來的環境。通俗的來講,虛擬環境就是藉助虛擬機docker來把一部分內容獨立出來,我們把這部分獨立出來的東西稱之為 容器,在這個容器中,我們可以只安裝我們開發需要依賴的包,各個容器之間相互隔離,互不影響。

為什麼要搭建虛擬環境?

  在使用 Python 開發的過程中,工程一多,難免會碰到不同的工程依賴不同版本的庫的問題;亦或者是在開發過程中不想讓物理環境裏充斥各種各樣的庫,引發未來的依賴災難。此時,我們可以使用虛擬環境 可以搭建獨立的運行環境,使得單個項目的運行環境與其它項目互不影響。

  另外更值得一提的是:在虛擬環境中使用pip安裝,不需要向系統目錄中寫入數據,可以繞過某些系統的權限設置。

如何搭建虛擬環境?

我們可以通過 virtualenvvirtualenvwrapper來實現虛擬環境的搭建。

一、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.shvirtualenvwrapper.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 目錄下。

注意:使用 virtualenvwrappermkvirtualenv 命令創建虛擬環境後,直接自動激活並進入該虛擬環境。

指定特定的python版本創建虛擬環境加上 -p 參數即可:

mkvirtualenv -p pythonx(.x) vituralenv_name
進入虛擬環境

virtualenvwrapper 可以通過 workon 進入虛擬環境。

workon virtualenv_name

而且可以通過 workon 命令直接進行虛擬環境之間的切換!

退出虛擬環境

virtualenvwrappervirtualenv 一樣,直接通過 deactivate 命令退出虛擬環境。

deactivate
刪除虛擬環境
rmvirtualenv vituralenv_name
列出當前所有的虛擬環境
# 方式一:
workon

# 方式二:
lsvirtualenv -b
特別聲明一下virtualenvwrapper 中的命令支持 tab 鍵自動補全的哦!
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.