终极版Python学习教程:一篇文章讲清楚Python虚拟环境
我在之前寫過一篇Python學(xué)習(xí)教程,說過新手往往沒有注意環(huán)境隔離,導(dǎo)致Python項(xiàng)目包與包之間沖突。
并且Python2與3代碼執(zhí)行有問題等等。鑒于此我決定今天的Python學(xué)習(xí)教程給大家聊聊關(guān)于Python環(huán)境隔離問題以及如何進(jìn)行隔離。
Virtualenv
我們都知道Python開發(fā)項(xiàng)目很容易,項(xiàng)目也經(jīng)得起工業(yè)級(jí)別考驗(yàn)。很多開發(fā)者都會(huì)習(xí)慣用Python開發(fā)項(xiàng)目,但是由于我們每個(gè)項(xiàng)目情況都有些不一樣。比如 今天可能用的是Django 1.8,明天可能用的是Django 2.1。
如果不進(jìn)行環(huán)境隔離全局安裝就會(huì)導(dǎo)致包的沖突,依賴不同,出現(xiàn)問題。
這個(gè)時(shí)候每個(gè)應(yīng)用都需要一套「獨(dú)立」的Python運(yùn)行環(huán)境。而Virtualenv就是拿來為應(yīng)用創(chuàng)建這一套「隔離」的Python運(yùn)行環(huán)境。
首先用pip安裝
pip install virtualenv創(chuàng)建虛擬環(huán)境
sitin@test:/data/opt/test$ virtualenv venv
sitin@test:/data/opt/test$ source venv/bin/activate
(venv) sitin@test:/data/opt/test$ deactivate
sitin@test:/data/opt/test$
Virtualenvwrapper
上面如果我們配置了vitualenvwrapper會(huì)更加方便切換進(jìn)入虛擬環(huán)境,做到一鍵切換進(jìn)入虛擬環(huán)境。不用每次都去到指定項(xiàng)目目錄里面進(jìn)行 source venv/bin/activate。
安裝如下:
pip install virtualenvwrappermkdir ~/.virtualenvs安裝好了,你可以在你的.bashrc或者.zshrc配置virtualenvwrapper,配置如下。
export WORKON_HOME=$HOME/.virtualenvs # 指定目錄 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' # 隔離系統(tǒng)site-packages export PIP_VIRTUALENV_BASE=$WORKON_HOME export PIP_RESPECT_VIRTUALENV=true if [[ -r /usr/local/bin/virtualenvwrapper.sh ]]; then source /usr/local/bin/virtualenvwrapper.sh else echo "WARNING: Can't find virtualenvwrapper.sh" fi 復(fù)制代碼配置好我們可以創(chuàng)建我們虛擬環(huán)境方式如下:
mkvirtualenv your_project #創(chuàng)建rmvitualenv your_project #刪除workon # 列出項(xiàng)目workon your_project # 進(jìn)去某個(gè)項(xiàng)目通過上面這種方式,讓我們更加方便切換進(jìn)入虛擬環(huán)境了。
Pyenv
說了vitualenv,vitualenvwrapper,進(jìn)行Python 包的環(huán)境隔離,我們接下來聊聊我們終極利器pyenv -- Python版本的隔離。
我們都知道python存在2,3問題,我們經(jīng)常需要維護(hù)老版本Python2項(xiàng)目,也要考慮新版本Python3的遷移。
說它是終極利器是它除了python版本問題,也可以結(jié)合virtualenv,vitualenvwrapper一起使用。
目前pyenv這個(gè)庫在github上面有14K+的star,可見受到到了非常多的關(guān)注。
這里面我們直接進(jìn)入Mac的安裝環(huán)節(jié):
brew install pyenvbrew install pyenv-virtualenvbrew install pyenv-virtualenvwrapper把下面的配置加入到我們的shell環(huán)境中,比如我的就是.zshrc。
# ---pyenv--- export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" 復(fù)制代碼配置好之后,我們可以看到pyenv的shell補(bǔ)全,如下圖。
pyenv的具體使用方式:
pyenv install -l # 獲取安裝列表 pyenv install 3.7.1 # 安裝python3.7 pyenv global 3.7.1 # 設(shè)置全局python pyenv virtualenv test-pyenv-venv # 創(chuàng)建虛擬包 pyenv activate test-pyenv-venv # 進(jìn)入虛擬環(huán)境 pyenv deactivate # 退出 ... 復(fù)制代碼這里面我就不過多演示使用了,看一個(gè)官方的配圖。
Tox
上面我們提到了關(guān)于使用pyenv進(jìn)行python2,3的版本隔離情況,實(shí)際過程中想要寫出兼容Python2,3的代碼,那么我們不得不提一下這個(gè)測(cè)試工具--tox。
tox提供了非常方便的方式來運(yùn)行我們的不同環(huán)境下的測(cè)試,非常方便我們?cè)趯憸y(cè)試的時(shí)候,同時(shí)對(duì)Python2,Python3的環(huán)境進(jìn)行測(cè)試,這里面強(qiáng)烈推薦大家使用。
最后關(guān)于虛擬環(huán)境實(shí)際Python3 官方有原生venv支持虛擬環(huán)境代替vitualenv目前接受度還較低,大家感興趣可以去了解下。本期的虛擬環(huán)境的Python學(xué)習(xí)教程就暫時(shí)聊到這兒,有不同看法的伙伴歡迎大家留言哈
轉(zhuǎn)載于:https://juejin.im/post/5d41496be51d4561f40adcec
總結(jié)
以上是生活随笔為你收集整理的终极版Python学习教程:一篇文章讲清楚Python虚拟环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下部署svn服务器
- 下一篇: [Spring cloud 一步步实现广