1. 程式人生 > >python 虛擬環境virtualenv

python 虛擬環境virtualenv

virtualenv 是一個建立隔絕的Python環境的工具。virtualenv建立一個包含所有必要的可執行檔案的資料夾,用來使用Python工程所需的包。

為什麼要裝虛擬環境呢?

- 隔離專案之間的第三方包依賴,如A專案依賴django1.2.5,B專案依賴django1.3。

- 為部署應用提供方便,把開發環境的虛擬環境打包到生產環境即可,不需要在伺服器上再折騰一翻。在伺服器上都不用安裝virtualenv,直接將virtualenv建立的目錄拷貝到伺服器,修改路徑,進行虛擬環境遷移就可以用了。

- 還可以用在沒有root許可權的python環境配置上,如果沒有root許可權,可以先自己搞一個virtualenv,再在virtualenv中使用pip安裝。(系統中沒有pip,並且也沒有root許可權使用sudo apt-get安裝)
 

  安裝

pip install virtualenv

  基本使用

  1. 為一個工程建立一個虛擬環境:
$ cd my_project_dir
$ virtualenv venv  #venv為虛擬環境目錄名,目錄名自定義

  virtualenv venv 將會在當前的目錄中建立一個資料夾,包含了Python可執行檔案,以及 pip 庫的一份拷貝,這樣就能安裝其他包了。虛擬環境的名字(此例中是 venv )可以是任意的;若省略名字將會把檔案均放在當前目錄。

  在任何你執行命令的目錄中,這會建立Python的拷貝,並將之放在叫做 venv

 的檔案中。

  你可以選擇使用一個Python直譯器:

$ virtualenv -p /usr/bin/python2.7 venv    # -p引數指定Python直譯器程式路徑

  這將會使用 /usr/bin/python2.7 中的Python直譯器。

 

  1. 要開始使用虛擬環境,其需要被啟用:
$ source venv/bin/activate   

從現在起,任何你使用pip安裝的包將會放在 venv 資料夾中,與全域性安裝的Python隔絕開。

像平常一樣安裝包,比如:

$ pip install requests
  1. 如果你在虛擬環境中暫時完成了工作,則可以停用它:
$ . venv/bin/deactivate

這將會回到系統預設的Python直譯器,包括已安裝的庫也會回到預設的。

要刪除一個虛擬環境,只需刪除它的資料夾。(執行 rm -rf venv )。

這裡virtualenv 有些不便,因為virtual的啟動、停止指令碼都在特定資料夾,可能一段時間後,你可能會有很多個虛擬環境散落在系統各處,你可能忘記它們的名字或者位置。

virtualenvwrapper

  鑑於virtualenv不便於對虛擬環境集中管理,所以推薦直接使用virtualenvwrapper。 virtualenvwrapper提供了一系列命令使得和虛擬環境工作變得便利。它把你所有的虛擬環境都放在一個地方。

  安裝virtualenvwrapper(確保virtualenv已安裝)

pip install virtualenvwrapper 
pip install virtualenvwrapper-win  #Windows使用該命令

  安裝完成後,在~/.bashrc寫入以下內容

export WORKON_HOME=~/Envs 
source /usr/local/bin/virtualenvwrapper.sh  

  第一行:virtualenvwrapper存放虛擬環境目錄

  第二行:virtrualenvwrapper會安裝到python的bin目錄下,所以該路徑是python安裝目錄下bin/virtualenvwrapper.sh

source ~/.bashrc    #讀入配置檔案,立即生效

 

 virtualenvwrapper基本使用

1.建立虛擬環境 mkvirtualenv

mkvirtualenv venv  
 

  這樣會在WORKON_HOME變數指定的目錄下新建名為venv的虛擬環境。  

若想指定python版本,可通過"--python"指定python直譯器


mkvirtualenv --python=/usr/local/python3.5.3/bin/python venv

2. 基本命令  

  檢視當前的虛擬環境目錄

[[email protected] ~]# workon 
py2
py3

  切換到虛擬環境

[[email protected] ~]# workon py3 
(py3) [[email protected] ~]# 

  退出虛擬環境

(py3) [[email protected] ~]# deactivate 
[[email protected] ~]# 

  刪除虛擬環境

rmvirtualenv venv

 

 

本文參考連結:

http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html

https://blog.csdn.net/howardwood/article/details/79580094