virtualenv創(chuàng)建相對獨立的Python 虛擬環(huán)境拼窥,對于項目的依賴、版本的控制有著非常重要的作用叹洲。
打個比喻柠硕,現(xiàn)在有一個 Django 項目,使用的 Django 版本是1.8,但是系統(tǒng)的 Django 版本已經(jīng)是更加新的1.11蝗柔,如果使用系統(tǒng)的環(huán)境來運行項目闻葵,可能導(dǎo)致很多不兼容,于是癣丧,這個問題就可以使用一個虛擬環(huán)境來解決槽畔,使用 virtualenv 來創(chuàng)建一個只給這個項目運行的開發(fā)環(huán)境,既可以保證項目的正常運行胁编,也方便了之后移植項目厢钧。
?1. virtualenv 的安裝和使用
(1) 安裝 virtualenv 安裝 virtualenv 跟安裝一般的 Python 庫是一樣的操作,直接使用 pip 命令就行了: pip install virtualenv 安裝完成之后就可以使用 virtualenv 的命令來創(chuàng)建虛擬環(huán)境了: virtualenv new_env 可以看到類似如下的結(jié)果: New python executable in /home/kakyoku/Desktop/DjangoDev/django_py3/bin/python Installing setuptools, pip, wheel... done.
(2) 使用 virtualenv 在 Linux 上進入虛擬環(huán)境嬉橙,直接輸入以下命令就可以進入虛擬環(huán)境: $source new_env/bin/activate 同樣可以看到類似如下的結(jié)果: (new_env)joyitsai@VirtualBox:~/www/envs$ 說明已經(jīng)進入了虛擬環(huán)境坏快。
2. 使用 virtualenvwrapper管理環(huán)境 virtualenvwrapper 是一個 virtualenv 虛擬環(huán)境的管理庫,這個庫可以更加方便的管理所有的虛擬環(huán)境憎夷。
?Linux 上安裝環(huán)境
?1莽鸿、使用pip命令安裝,如果系統(tǒng)上面有兩個版本的 Python(一般默認(rèn)是2.7和3.52兩個版本)拾给,那么要看虛擬環(huán)境要什么默認(rèn) Python 版本了祥得,比如要使用3.52的版本作為虛擬環(huán)境的 Python 版本,那么就應(yīng)該使用如下命令: pip3 install virtualenvwrapper
?2蒋得、我們可以接著創(chuàng)建一個文件夾來存放虛擬環(huán)境级及,如: $ mkdir $HOME/.virtualenvs
3、接著需要配置環(huán)境變量文件额衙。首先修改(文件不存在就創(chuàng)建)文件~/.bashrc饮焦,然后添加如下語句: export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh
4、讓.bashrc配置生效窍侧,執(zhí)行: source ~/.bashrc 如果沒有報錯县踢,那么說明配置完成了,可以使用命令看看是否可以使用: mkvirtualenv new_env
5伟件、報錯的解決方案
?(1) 如果上述操作報錯了硼啤,那么應(yīng)該是你的 Linux 上面有兩個版本的 Python,比如我的就報錯了斧账,我的上面有一個2.7的和一個3.5的版本谴返。
?(2) 如果報錯如下提示: /usr/local/bin/virtualenvwrapper.sh: No such file or directory 則說明這個文件不存在,可以使用find命令來查找正確的位置: find / -name "virtualenvwrapper.sh" 比如我因為是在3.5版本的 Python 中安裝的virtualenvwrapper咧织,所以發(fā)現(xiàn)這個.sh文件在這個地址中 /home/joyitsai/.local/bin/virtualenvwrapper.sh 所以上面的文件中的最后一個語句改成 source /home/joyitsai/.local/bin/virtualenvwrapper.sh 改完這個地方應(yīng)該還是會報錯嗓袱,大概是在說沒有安裝這個虛擬環(huán)境庫,就像這樣 /usr/bin/python: No module named virtualenvwrapper 之所以報錯這個是因為我用的3.5版本安裝的這個環(huán)境习绢,系統(tǒng)的2.7版本是沒有的渠抹,所以還需要添加一個語句: export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 其中表明了 python3 的位置,當(dāng)然,這個位置需要你自己查看自己的系統(tǒng)上面安裝的位置逼肯,查看方式可以使用: which python3 沒有報錯就說明環(huán)境設(shè)置好了,現(xiàn)在可以開始使用環(huán)境了桃煎。
?6篮幢、virtualenvwrapper 命令 創(chuàng)建虛擬環(huán)境:mkvirtualenv new_env
使用虛擬環(huán)境:workon new_env
退出虛擬環(huán)境:deactivate
刪除虛擬環(huán)境: rmvirtualenv new_env
查看所有虛擬環(huán)境:lsvirtualenv
3. requirements.txt 文件的操作
?1、生成文件 在虛擬環(huán)境中使用以下命令可以生成一個虛擬環(huán)境的安裝包版本文件 (venv) $ pip freeze > requirements.txt 需要注意的地方: ?指定生成文件的目錄 ?文件生成之后为迈,有時候需要調(diào)整安裝包的順序三椿,例如一個安裝包是依賴另一個的,則需要把依賴包放在靠前的位置 ?如果想安裝某個包的最新版葫辐,則把==及后面的版本信息刪除即可
2搜锰、復(fù)制環(huán)境 首先新建一個虛擬環(huán)境白魂,然后把當(dāng)前位置切換到需求文件所在目錄下送膳,然后在新建的虛擬環(huán)境中運行以下命令就可以安裝需求文件中所有的依賴庫茂洒,相當(dāng)于復(fù)制了一個虛擬環(huán)境揩页。 (venv) $ pip install -r requirements.txt 當(dāng)然径玖,如果不把當(dāng)前目錄切換到需求文件所在目錄也是可以安裝需求文件的依賴的榕茧,但是要指明需求文件的絕對地址奴紧,例如: (venv) $ pip install -r > /Path/requirements.txt