對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)境安裝相應版本的包,讓程序使用對應的虛擬環(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 目錄(當然你可以安裝到任意其他路徑)
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
使當前 Shell 配置生效,完成安裝
exec $SHELL source ~/.zshrc
2. 使用
查看有哪些 Python 版本可以安裝
pyenv install --list
安裝某個 Python 版本
pyenv install -v 3.6.4
查看當前 Python 版本情況(* 表示系統(tǒng)當前的 Python 版本,system表示系統(tǒng)初始版本)
$ pyenv versions system 2.6.7 * 3.6.4 (set by /Users/haohao/.pyenv/version)
切換 Python 版本(切換之后查看當前版本)
$ 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.進入目錄創(chuàng)建一個完全獨立干凈的虛擬環(huán)境
如果 virtualenv 后面不加任何參數(shù),那么默認創(chuàng)建的虛擬環(huán)境的 Python 版本是系統(tǒng)當前版本,如果要創(chuàng)建其他版本,可以使用 -p 參數(shù)指定其他版本的 python 可執(zhí)行文件路徑??蓤?zhí)行文件可以在上一步安裝的 pyenv 的 ~/.pyenv/versions 路徑找到,該路徑是 pyenv 管理的所有 Python 版本路徑。
# 使用系統(tǒ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)境并使用
可以看出當前虛擬環(huán)境版本已經(jīng)是 Python 2.6.7 了,而且所在路徑確實是在上一步創(chuàng)建的虛擬環(huán)境路徑。接下來使用 pip 安裝的任何包都會安裝在虛擬環(huán)境目錄里面,不會安裝在系統(tǒ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)文章
使用Python快速搭建HTTP服務和文件共享服務的實例講解
今天小編就為大家分享一篇使用Python快速搭建HTTP服務和文件共享服務的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06Python for Informatics 第11章之正則表達式(二)
這篇文章主要介紹了Python for Informatics 第11章 正則表達式(二)的相關(guān)資料,需要的朋友可以參考下2016-04-04PyCharm Python Console中文輸出亂碼問題及解決
這篇文章主要介紹了PyCharm Python Console中文輸出亂碼問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07Python使用grequests并發(fā)發(fā)送請求的示例
這篇文章主要介紹了Python使用grequests并發(fā)送請求的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11Python中搜索和替換文件中的文本的實現(xiàn)(四種)
本文主要介紹了Python中搜索和替換文件中的文本的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10Python列表原理與用法詳解【創(chuàng)建、元素增加、刪除、訪問、計數(shù)、切片、遍歷等】
這篇文章主要介紹了Python列表原理與用法,結(jié)合實例形式詳細分析了Python列表的創(chuàng)建、元素增加、刪除、訪問、計數(shù)、切片、遍歷、排序等各種常見操作技巧與使用注意事項,需要的朋友可以參考下2019-10-10