摘要:另一個(gè)好處是,虛擬環(huán)境不需要管理員權(quán)限。當(dāng)一個(gè)虛擬環(huán)境被激活后,程序的位置會(huì)被添加到中。比如,安裝到虛擬環(huán)境中,使用如下命令安裝過(guò)程會(huì)將和它的依賴(lài)集安裝到虛擬環(huán)境中。
簡(jiǎn)介
在開(kāi)發(fā)不同的應(yīng)用時(shí),我們可能需要不同的 Python 版本,同時(shí)可能還需要處理包的依賴(lài)、版本和間接權(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)境的包,就類(lèi)似于一個(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)境的名稱(chēng)即可:
$ virtualenv kvenv
創(chuàng)建過(guò)程輸出如下信息:
Running virtualenv with interpreter /usr/bin/python2 New python executable in kvenv/bin/python2 Also creating executable in kvenv/bin/python Installing 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 和它的依賴(lài)集安裝到虛擬環(huán)境中。驗(yàn)證是否安裝成功,可以用如下方法:
(venv)$ python >>> import flask >>>
用如下命令可以查看當(dāng)前環(huán)境安裝了哪些包:
$ pip freeze參考資料
http://flask123.sinaapp.com/a...
http://www.nowamagic.net/acad...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/43075.html
引入—— 解決兩個(gè)在python開(kāi)發(fā)中很常見(jiàn)的問(wèn)題: Python很萬(wàn)能,這誰(shuí)都知道(我也知道哈),但這就意味著——Python的庫(kù)多,是真的多!你要用哪個(gè)庫(kù),就直接下載!pip install!很簡(jiǎn)單吧,是很簡(jiǎn)單!但是,這樣會(huì)很直接的帶來(lái)一個(gè)問(wèn)題,也是很多新手容易犯得——你一看他的Python環(huán)境,全是第三方包,密密麻麻的,甚至于開(kāi)個(gè)pycharm,加載第三方包都得加載半年,他還不知道為啥(傻...
摘要:坑人的版本的版本問(wèn)題一直是個(gè)廣被吐槽的黑點(diǎn)。這些版本的沖突在開(kāi)發(fā)中十分常見(jiàn),而和的版本差異又加劇了這一問(wèn)題。從而避免與其他版本發(fā)生干擾。 坑人的版本 Python 的版本問(wèn)題一直是個(gè)廣被吐槽的黑點(diǎn)。以至于有人調(diào)侃說(shuō): Python 是世界上最好的兩種語(yǔ)言! 在這里我要說(shuō)明下,對(duì)于初學(xué)者來(lái)說(shuō),版本間的語(yǔ)法差異其實(shí)并不大。現(xiàn)在剛開(kāi)始學(xué) Python 的人,放心大膽地 用最新版本 即可。業(yè)內(nèi)...
摘要:虛擬環(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)限。 https://www.jianshu.com/p/08c... virtualenv 虛擬環(huán)境是在Python解釋器上的一個(gè)私有復(fù)制,你可以在一個(gè)...
摘要:為了安裝科學(xué)計(jì)算環(huán)境,控制好版本,今天上午總算折騰好了。切換和使用新的虛擬環(huán)境這樣就能切換為這個(gè)版本的虛擬環(huán)境。通過(guò)輸入查看現(xiàn)在版本,可以發(fā)現(xiàn)處于虛擬環(huán)境下了。指定包的版本多個(gè)版本并存,尤其是和的并存。下面用創(chuàng)建一個(gè)名叫的版本為的環(huán)境。 為了安裝Anaconda科學(xué)計(jì)算環(huán)境,控制好python版本,今天上午總算折騰好了。 學(xué)習(xí)python有時(shí)希望在python2.7環(huán)境下,有時(shí)希望在...
摘要:之前我們總結(jié)了使用谷歌將語(yǔ)音轉(zhuǎn)換為文字的基本流程,然而那只是在命令行中使用實(shí)現(xiàn)的。配置開(kāi)發(fā)環(huán)境筆者使用的是樹(shù)莓派進(jìn)行試驗(yàn)的,其他平臺(tái)的配置方法可以在這里查找。設(shè)置驗(yàn)證登錄谷歌云平臺(tái)控制臺(tái),前往創(chuàng)建服務(wù)賬號(hào)密鑰界面。 之前我們總結(jié)了使用谷歌Cloud Speech API將語(yǔ)音轉(zhuǎn)換為文字的基本流程,然而那只是在命令行中使用curl實(shí)現(xiàn)的。這次我們將總結(jié)在Python中使用Cloud Sp...
閱讀 1564·2021-11-02 14:42
閱讀 2307·2021-10-11 10:58
閱讀 656·2021-09-26 09:46
閱讀 2907·2021-09-08 09:35
閱讀 1403·2021-08-24 10:01
閱讀 1228·2019-08-30 15:54
閱讀 3596·2019-08-30 15:44
閱讀 1791·2019-08-30 10:49