一篇文章講清楚Python虛擬環境

說過新手往往沒有注意環境隔離,導致Python項目包與包之間衝突。

並且Python2與3代碼執行有問題等等。鑑於此我今天給大家聊聊關於Python環境隔離問題以及如何進行隔離。

Virtualenv

我們都知道Python開發項目很容易,項目也經得起工業級別考驗。很多開發者都會習慣用Python開發項目,但是由於我們每個項目情況都有些不一樣。比如 今天可能用的是Django 1.8,明天可能用的是Django 2.1。

如果不進行環境隔離全局安裝就會導致包的衝突,依賴不同,出現問題。

這個時候每個應用都需要一套「獨立」的Python運行環境。而Virtualenv就是拿來爲應用創建這一套「隔離」的Python運行環境。

首先用pip安裝

pip install virtualenv

創建虛擬環境

sitin@test:/data/opt/test$ virtualenv venv

Virtualenvwrapper

上面如果我們配置了vitualenvwrapper會更加方便切換進入虛擬環境,做到一鍵切換進入虛擬環境。不用每次都去到指定項目目錄裏面進行 source venv/bin/activate

安裝如下:

pip install virtualenvwrapper

安裝好了,你可以在你的.bashrc或者.zshrc配置virtualenvwrapper,配置如下。

export WORKON_HOME=$HOME/.virtualenvs  # 指定目錄

配置好我們可以創建我們虛擬環境方式如下:

通過上面這種方式,讓我們更加方便切換進入虛擬環境了。

mkvirtualenv your_project #創建

Pyenv

說了vitualenv,vitualenvwrapper,進行Python 包的環境隔離,我們接下來聊聊我們終極利器pyenv -- Python版本的隔離。

我們都知道python存在2,3問題,我們經常需要維護老版本Python2項目,也要考慮新版本Python3的遷移。

說它是終極利器是它除了python版本問題,也可以結合virtualenv,vitualenvwrapper一起使用。

目前pyenv這個庫在github上面有14K+的star,可見受到到了非常多的關注。

這裏面我們直接進入Mac的安裝環節:

brew install pyenv

把下面的配置加入到我們的shell環境中,比如我的就是.zshrc。

# ---pyenv---

配置好之後,我們可以看到pyenv的shell補全,如下圖。

image

pyenv的具體使用方式:

pyenv install -l # 獲取安裝列表

這裏面我就不過多演示使用了,看一個官方的配圖。

image

Tox

上面我們提到了關於使用pyenv進行python2,3的版本隔離情況,實際過程中想要寫出兼容Python2,3的代碼,那麼我們不得不提一下這個測試工具--tox。

tox提供了非常方便的方式來運行我們的不同環境下的測試,非常方便我們在寫測試的時候,同時對Python2,Python3的環境進行測試,這裏面強烈推薦大家使用。

最後關於虛擬環境實際Python3 官方有原生venv支持虛擬環境代替vitualenv目前接受度還較低,大家感興趣可以去了解下。我們虛擬環境就暫時聊到這兒,歡迎你給我留言,談談你的一些看法或思考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章