virtualenv 是用來建立 Python 的虛擬環境的庫,虛擬環境可以獨立於真實環境存在,而且能夠同時有多個互相獨立的 Python 虛擬環境,每一個虛擬環境均可以營造一個乾淨的開發環境,對於項目的依賴、版本的控制有着很是重要的做用。python
虛擬環境有什麼意義?打個比喻,如今有一個 Django 項目,使用的 Django 版本是1.8,可是系統的 Django 版本已是更加新的1.11,若是使用系統的環境來運行項目,可能致使不少不兼容,因而,這個問題就可使用一個虛擬環境來解決,使用 virtualenv 來建立一個只給這個項目運行的開發環境,既能夠保證項目的正常運行,也方便了以後移植項目。linux
因爲 virtualenv 在 Windows 和 linux 上的安裝和使用有一點點不一樣,因此須要分別來說。bash
virtualenv 的安裝在 Windows 和 linux 上面是同樣的,因此不分開講解。安裝 virtualenv 跟安裝通常的 Python 庫是同樣的操做,直接使用 pip 命令就好了:app
pip install virtualenv
安裝完成以後就可使用 virtualenv 的命令來建立虛擬環境了,首先須要在 cmd 命令中進入須要建立虛擬環境的文件夾,好比 F 盤的 envs 文件夾,而後使用如下命令建立一個虛擬環境,暫且取名爲 new_env:ui
virtualenv new_env
能夠看到相似以下的結果:this
F:\envs>virtualenv new_env Using base prefix 'f:\\python352' New python executable in F:\envs\new_env\Scripts\python.exe Installing setuptools, pip, wheel...done.
上面這段返回的意思是使用當前系統的 Python 版本建立一個虛擬環境spa
首先進入到虛擬環境目錄中的 Scripts 目錄:code
F:\envs>cd new_env\Scripts
而後輸入activate
就能夠了,會出現以下的結果:orm
(new_env) F:\envs\new_env\Scripts>
在地址的前面出現了一個括號和虛擬環境的名稱,這個就表示如今已經在虛擬環境 new_env 中了,以後的全部操做都是在虛擬環境中進行的,直接輸入python
能夠查看當前環境下的 Python 版本,能夠獲得以下輸出:blog
(new_env) F:\envs\new_env\Scripts>python Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
使用pip
的list
命令能夠查看當前環境下的全部包含的庫的版本:
(new_env) F:\envs\new_env\Scripts>pip list DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.co nf under the [list] section) to disable this warning. pip (9.0.1) setuptools (38.5.2) wheel (0.30.0)
$ source new_env/bin/activate
一樣能夠看到相似以下的結果:
(new_env) alex@VirtualBox:~/www/envs$
進入了虛擬環境以後,Windows 和 Linux 上面的操做都是同樣的,這裏就不單獨去說明了。
virtualenvwrapper 是一個 virtualenv 虛擬環境的管理庫,這個庫能夠更加方便的管理全部的虛擬環境,因爲在 Windows 和 Linux 上面這個庫的安裝和配置不一樣,因此要單獨作說明。
一、Windows 上須要安裝的是virtualenvwrapper-win
,直接使用pip
命令就能夠了:
pip install virtualenvwrapper-win
二、配置虛擬環境的保存路徑。首先須要在想要統一存放虛擬環境的地方建立一個文件夾(我在F盤創建了F:\space_env),而後把這個文件夾添加到系統的環境變量中,具體添加方式看截圖:
三、注意說明: - 若是不設置系統環境變量,那麼建立的虛擬環境會保存到默認的地方,不方便管理 - 添加了環境變量以後,須要重啓 cmd 窗口,若是是使用的 pycharm 也要重啓一下才行
一、使用pip
命令安裝,若是系統上面有兩個版本的 Python(通常默認是2.7和3.52兩個版本),那麼要看虛擬環境要什麼默認 Python 版本了,好比要使用3.52的版本做爲虛擬環境的 Python 版本,那麼就應該使用以下命令:
pip3 install virtualenvwrapper
二、配置環境變量文件。首先修改(文件不存在就建立)文件~/.bashrc,而後添加以下語句:
export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/workspace source /usr/local/bin/virtualenvwrapper.sh
而後運行:
source ~/.bashrc
若是沒有報錯,那麼說明配置完成了,可使用命令看看是否可使用:
mkvirtualenv new_env
若是上述操做報錯了,那麼應該是你的 Linux 上面有兩個版本的 Python,好比個人就報錯了,個人上面有一個2.7的和一個3.5的版本。
若是報錯以下提示:
/usr/local/bin/virtualenvwrapper.sh: No such file or directory
則說明這個文件不存在,可使用find
命令來查找正確的位置:
find / -name "virtualenvwrapper.sh"
好比我由於是在3.5版本的 Python 中安裝的virtualenvwrapper
,因此發現這個.sh文件在這個地址中
/home/alex/.local/bin/virtualenvwrapper.sh
因此上面的文件中的最後一個語句改爲
source /home/alex/.local/bin/virtualenvwrapper.sh
改完這個地方應該仍是會報錯,大概是在說沒有安裝這個虛擬環境庫,就像這樣
/usr/bin/python: No module named virtualenvwrapper
之因此報錯這個是由於我用的3.5版本安裝的這個環境,系統的2.7版本是沒有的,因此還須要添加一個語句:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
其中代表了 python3 的位置,固然,這個位置須要你本身查看本身的系統上面安裝的位置,查看方式可使用:
which python3
最終個人~/.bashrc文件中的語句是這樣的:
export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/workspace export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /home/alex/.local/bin/virtualenvwrapper.sh
而後能夠運行這個文件:
source ~/.bashrc
沒有報錯就說明環境設置好了,如今能夠開始使用環境了。
mkvirtualenv new_env
workon new_env
deactivate
rmvirtualenv new_env
lsvirtualenv
在虛擬環境中使用一下命令能夠生成一個虛擬環境的安裝包版本文件
(venv) $ pip freeze >F:A_FILE\requirements.txt
須要注意的地方:
首先新建一個虛擬環境,而後把當前位置切換到需求文件所在目錄下,而後在新建的虛擬環境中運行如下命令就能夠安裝需求文件中全部的依賴庫,至關於複製了一個虛擬環境。
(venv) $ pip install -r requirements.txt
固然,若是不把當前目錄切換到需求文件所在目錄也是能夠安裝需求文件的依賴的,可是要指明需求文件的絕對地址,例如:
(venv) $ pip install -r >F:A_FILE\requirements.txt
原創文章,轉載請註明出處:http://www.tendcode.com/article/virtualenv-for-python/