對Python 兩大環(huán)境管理神器 pyenv 和 virtualenv詳解
簡介
pyenv 是一個開源的 Python 版本管理工具,可以輕松地給系統(tǒng)安裝任意 Python 版本,想玩哪個版本,瞬間就可以切換。有了 pyenv,我們不需要再為系統(tǒng)多版本 Python 共存問題而發(fā)愁,也不用為手動編譯安裝其他 Python 版本而浪費時間,只需要執(zhí)行一條簡單的命令就可以切換并使用任何其他版本,該工具真正地做到了開箱即用,簡單實用。
virtualenv 是一個用來創(chuàng)建完全隔離的 Python 虛擬環(huán)境的工具,可以為每個項目工程創(chuàng)建一套獨立的 Python 環(huán)境,從而可以解決不同工程對 Python 包,或者版本的依賴問題。假如有 A 和 B 兩個工程,A 工程代碼要跑起來需要 requests 1.18.4,而 B 工程跑起來需要 requests 2.18.4,這樣在一個系統(tǒng)中就無法滿足兩個工程同時運行問題了。最好的解決辦法是用 virtualenv 給每個工程創(chuàng)建一個完全隔離的 Python 虛擬環(huán)境,給每個虛擬環(huán)境安裝相應(yīng)版本的包,讓程序使用對應(yīng)的虛擬環(huán)境運行即可。這樣既不影響系統(tǒng) Python 環(huán)境,也能保證任何版本的 Python 程序可以在同一系統(tǒng)中運行。
最佳實踐:使用 pyenv 安裝任何版本的 Python,然后用 virtualenv 創(chuàng)建虛擬環(huán)境時指定需要的 Python 版本路徑,這樣就可以創(chuàng)建任何版本的虛擬環(huán)境,這樣的實踐真是極好的!
pyenv 的安裝及使用
1. 安裝
將 pyenv 安裝到 ~/.pyenv 目錄(當(dāng)然你可以安裝到任意其他路徑)
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
配置環(huán)境變量(我的 Shell 是 zsh,如果是 bash,請?zhí)砑拥?~/.bashrc)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
添加 pyenv 初始化(我的 Shell 是 zsh,如果是 bash,請?zhí)砑拥?~/.bashrc)
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
使當(dāng)前 Shell 配置生效,完成安裝
exec $SHELL source ~/.zshrc
2. 使用
查看有哪些 Python 版本可以安裝
pyenv install --list
安裝某個 Python 版本
pyenv install -v 3.6.4
查看當(dāng)前 Python 版本情況(* 表示系統(tǒng)當(dāng)前的 Python 版本,system表示系統(tǒng)初始版本)
$ pyenv versions system 2.6.7 * 3.6.4 (set by /Users/haohao/.pyenv/version)
切換 Python 版本(切換之后查看當(dāng)前版本)
$ pyenv global 3.6.4 $ pyenv versions system * 3.6.4 (set by /Users/haohao/.pyenv/version) $ python -V Python 3.6.4
卸載某個 Python 版本
pyenv uninstall 3.6.4
virtualenv 的安裝及使用
1. 安裝
sudo pip install virtualenv
2. 使用
下面我們使用 virtualenv 創(chuàng)建一個完全隔離的 Python 虛擬環(huán)境:
1.新建一個目錄(一般用來用作工程路徑)
$ mkdir myproject
2.進(jìn)入目錄創(chuàng)建一個完全獨立干凈的虛擬環(huán)境
如果 virtualenv 后面不加任何參數(shù),那么默認(rèn)創(chuàng)建的虛擬環(huán)境的 Python 版本是系統(tǒng)當(dāng)前版本,如果要創(chuàng)建其他版本,可以使用 -p 參數(shù)指定其他版本的 python 可執(zhí)行文件路徑??蓤?zhí)行文件可以在上一步安裝的 pyenv 的 ~/.pyenv/versions 路徑找到,該路徑是 pyenv 管理的所有 Python 版本路徑。
# 使用系統(tǒng)當(dāng)前的 Python 版本創(chuàng)建虛擬環(huán)境 $ virtualenv venv New python executable in /Users/haohao/PycharmProjects/myproject/venv/bin/python # 創(chuàng)建虛擬環(huán)境時指定 Python 版本 $ virtualenv -p ~/.pyenv/versions/2.6.7/bin/python venv Running virtualenv with interpreter /Users/haohao/.pyenv/versions/2.6.7/bin/python New python executable in /Users/haohao/PycharmProjects/myproject/venv/bin/python Installing setuptools<37, pip, wheel<0.30...done.
3.激活創(chuàng)建的虛擬環(huán)境并使用
可以看出當(dāng)前虛擬環(huán)境版本已經(jīng)是 Python 2.6.7 了,而且所在路徑確實是在上一步創(chuàng)建的虛擬環(huán)境路徑。接下來使用 pip 安裝的任何包都會安裝在虛擬環(huán)境目錄里面,不會安裝在系統(tǒng)標(biāo)準(zhǔn)目錄,從而保證當(dāng)前環(huán)境是絕對干凈的,對于系統(tǒng)是完全隔離的。
$ source venv/bin/activate $ which python /Users/haohao/PycharmProjects/myproject/venv/bin/python $ python -V Python 2.6.7
4.退出虛擬環(huán)境,回到系統(tǒng)版本
$ deactivate
以上這篇對Python 兩大環(huán)境管理神器 pyenv 和 virtualenv詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python3 常見解密加密算法實例分析【base64、MD5等】
這篇文章主要介紹了python3 常見解密加密算法,結(jié)合實例形式分析了Python的base64模塊加密,以及基于pycrypto模塊的MD5加密等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12
Python使用urlretrieve實現(xiàn)直接遠(yuǎn)程下載圖片的示例代碼
這篇文章主要介紹了Python使用urlretrieve實現(xiàn)直接遠(yuǎn)程下載圖片的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
python實現(xiàn)得到一個給定類的虛函數(shù)
這篇文章主要介紹了python實現(xiàn)得到一個給定類的虛函數(shù)的方法,以wx的PyPanel類為例講述了打印以base_開頭的方法的實例,需要的朋友可以參考下2014-09-09
Django 狀態(tài)保持搭配與存儲的實現(xiàn)
本文主要介紹了Django 狀態(tài)保持搭配與存儲的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06

