Virtualenv
我們都知道Python開發(fā)項目很容易,項目也經(jīng)得起工業(yè)級別考驗。很多開發(fā)者都會習慣用Python開發(fā)項目,但是由于我們每個項目情況都有些不一樣。比如 今天可能用的是Django 1.8,明天可能用的是Django 2.1。
如果不進行環(huán)境隔離全局安裝就會導致包的沖突,依賴不同,出現(xiàn)問題。
這個時候每個應(yīng)用都需要一套「獨立」的Python運行環(huán)境。而Virtualenv就是拿來為應(yīng)用創(chuàng)建這一套「隔離」的Python運行環(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án)境,做到一鍵切換進入虛擬環(huá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
配置好我們可以創(chuàng)建我們虛擬環(huán)境方式如下:
mkvirtualenv your_project #創(chuàng)建rmvitualenv your_project #刪除workon # 列出項目workon your_project # 進去某個項目
通過上面這種方式,讓我們更加方便切換進入虛擬環(huán)境了。
Pyenv
說了vitualenv,vitualenvwrapper,進行Python 包的環(huán)境隔離,我們接下來聊聊我們終極利器pyenv – Python版本的隔離。
我們都知道python存在2,3問題,我們經(jīng)常需要維護老版本Python2項目,也要考慮新版本Python3的遷移。
說它是終極利器是它除了python版本問題,也可以結(jié)合virtualenv,vitualenvwrapper一起使用。
目前pyenv這個庫在github上面有14K+的star,可見受到到了非常多的關(guā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 -)"
配置好之后,我們可以看到pyenv的shell補全,如下圖。
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
# 進入虛擬環(huán)境
pyenv deactivate
# 退出
.
.
.
這里面我就不過多演示使用了,看一個官方的配圖。
Tox
上面我們提到了關(guān)于使用pyenv進行python2,3的版本隔離情況,實際過程中想要寫出兼容Python2,3的代碼,那么我們不得不提一下這個測試工具–tox。
tox提供了非常方便的方式來運行我們的不同環(huán)境下的測試,非常方便我們在寫測試的時候,同時對Python2,Python3的環(huán)境進行測試,這里面強烈推薦大家使用。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
