国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

Linux下使用 virtualenv 虛擬獨(dú)立 Python 環(huán)境

2024-06-28 16:03:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

簡(jiǎn)介

在開(kāi)發(fā)不同的應(yīng)用時(shí),我們可能需要不同的 Python 版本,同時(shí)可能還需要處理包的依賴、版本和間接權(quán)限問(wèn)題。在同系統(tǒng)中,要解決這些問(wèn)題往往非常棘手。在 Python 的開(kāi)發(fā)環(huán)境中,為解決這樣的問(wèn)題最常用的方法是使用 virtualenv 包。 Virtualenv 是一個(gè)用來(lái)創(chuàng)建獨(dú)立的 Python 環(huán)境的包,就類似于一個(gè)沙箱,將開(kāi)發(fā)運(yùn)行環(huán)境與系統(tǒng)隔離開(kāi)來(lái)。

用 VirtualEnv 創(chuàng)建的多個(gè) Python 環(huán)境相互獨(dú)立,互不影響,它能夠:

在沒(méi)有權(quán)限的情況下安裝新套件不同應(yīng)用可以使用不同的套件版本套件升級(jí)不影響其他應(yīng)用

這樣的虛擬環(huán)境是在 Python 解釋器上的一個(gè)私有復(fù)制。這樣我們就可以在一個(gè)隔絕的環(huán)境下安裝 packages,不會(huì)影響到系統(tǒng)中全局的 Python 解釋器。虛擬環(huán)境非常有用,因?yàn)樗梢苑乐瓜到y(tǒng)出現(xiàn)包管理混亂和版本沖突的問(wèn)題。為每個(gè)應(yīng)用程序創(chuàng)建一個(gè)虛擬環(huán)境可以確保應(yīng)用程序只能訪問(wèn)它們自己使用的包,從而全局解釋器只作為一個(gè)源且依然整潔干凈去更多的虛擬環(huán)境。另一個(gè)好處是,虛擬環(huán)境不需要管理員權(quán)限。

安裝

這里只介紹 linux 系統(tǒng)下的安裝。在 Linux 下的安裝方法多種多樣,可以通過(guò)源碼源碼安裝,也可以用 Python 的包管理工具 easy_install 和 pip 安裝,例如:

$ sudo easy_install virtualenv

或者:

$ sudo pip install virtualenv

如果你使用的是 Ubuntu 及其衍生版本,還可以通過(guò)如下方式安裝:

$ sudo apt-get install python-virtualenv

創(chuàng)建虛擬環(huán)境

安裝完成之后便可用 virtualenv 命令創(chuàng)建虛擬環(huán)境,只需要指定一個(gè)虛擬環(huán)境的名稱即可:

$ virtualenv kvenv

創(chuàng)建過(guò)程輸出如下信息:

Running virtualenv with interPReter /usr/bin/python2New python executable in kvenv/bin/python2Also creating executable in kvenv/bin/pythonInstalling setuptools, pip...done.

創(chuàng)建完成后會(huì)生成一個(gè) kvenv 目錄。也可以根據(jù)需要加上參數(shù)來(lái)指定所創(chuàng)建的虛擬環(huán)境的行為,例如加上 -p 參數(shù)指定 Python 版本。

激活虛擬環(huán)境

要激活創(chuàng)建的虛擬環(huán)境可以用如下命令:

$ source kvenv/bin/activate

激活成功后會(huì)在命令提示符前邊加上 (kvenv) 字符。此時(shí),我們 which python 看有什么不同:

(kvenv)konghy$[~] => which python/home/konghy/kvenv/bin/python

會(huì)發(fā)現(xiàn)此時(shí)的 python 解釋器執(zhí)行的是虛擬環(huán)境下的,而不是系統(tǒng)全局的。Virtualenv 拷貝了 Python 可執(zhí)行文件的副本,并創(chuàng)建一些有用的腳本和安裝了項(xiàng)目需要的軟件包,你可以在項(xiàng)目的整個(gè)生命周期中安裝/升級(jí)/刪除這些包。 它也修改了一些搜索路徑,例如PYTHONPATH,以確保:

當(dāng)安裝包時(shí),它們被安裝在當(dāng)前活動(dòng)的virtualenv里,而不是系統(tǒng)范圍內(nèi)的Python路徑。

當(dāng)import代碼時(shí),virtualenv將優(yōu)先采取本環(huán)境中安裝的包,而不是系統(tǒng)Python目錄中安裝的包。

還有一點(diǎn)比較重要,在默認(rèn)情況下,所有安裝在系統(tǒng)范圍內(nèi)的包對(duì)于 virtualenv 是可見(jiàn)的。 這意味著如果你將 simplejson 安裝在您的系統(tǒng) Python 目錄中,它會(huì)自動(dòng)提供給所有的 virtualenvs 使用。 這種行為可以被更改,在創(chuàng)建 virtualenv 時(shí)增加 --no-site-packages 選項(xiàng)的 virtualenv 就不會(huì)讀取系統(tǒng)包,如下:

$ virtualenv kvenv --no-site-packages

退出虛擬環(huán)境用如下命令:

$ deactivate

在虛擬環(huán)境中安裝包

大多數(shù)的 Python 包是通過(guò) pip 程序安裝的,在創(chuàng)建虛擬環(huán)境的時(shí)候 virtualenv 會(huì)自動(dòng)添加進(jìn)去。當(dāng)一個(gè)虛擬環(huán)境被激活后,pip 程序的位置會(huì)被添加到 PATH 中。比如,安裝 Flask 到虛擬環(huán)境中,使用如下命令:

$ pip install flask

安裝過(guò)程會(huì)將 Flask 和它的依賴集安裝到虛擬環(huán)境中。驗(yàn)證是否安裝成功,可以用如下方法:

(venv)$ python>>> import flask>>>

用如下命令可以查看當(dāng)前環(huán)境安裝了哪些包:

$ pip freeze

參考資料

http://flask123.sinaapp.com/article/39/

http://www.nowamagic.net/academy/detail/1330228


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 邵武市| 巫山县| 吉林省| 泸定县| 剑阁县| 正定县| 阳高县| 乌什县| 舞阳县| 沙田区| 昌邑市| 城口县| 雅江县| 额敏县| 丽江市| 龙海市| 青神县| 林州市| 雅江县| 迭部县| 芮城县| 韩城市| 江都市| 寻乌县| 兴宁市| 阆中市| 和政县| 金堂县| 连州市| 永善县| 大竹县| 乌兰县| 金湖县| 精河县| 吉隆县| 榕江县| 永新县| 尼玛县| 云龙县| 夏河县| 平昌县|