摘要:另一個好處是,虛擬環(huán)境不需要管理員權限。當一個虛擬環(huán)境被激活后,程序的位置會被添加到中。比如,安裝到虛擬環(huán)境中,使用如下命令安裝過程會將和它的依賴集安裝到虛擬環(huán)境中。
簡介
在開發(fā)不同的應用時,我們可能需要不同的 Python 版本,同時可能還需要處理包的依賴、版本和間接權限問題。在同系統(tǒng)中,要解決這些問題往往非常棘手。在 Python 的開發(fā)環(huán)境中,為解決這樣的問題最常用的方法是使用 virtualenv 包。 Virtualenv 是一個用來創(chuàng)建獨立的 Python 環(huán)境的包,就類似于一個沙箱,將開發(fā)運行環(huán)境與系統(tǒng)隔離開來。
用 VirtualEnv 創(chuàng)建的多個 Python 環(huán)境相互獨立,互不影響,它能夠:
在沒有權限的情況下安裝新套件
不同應用可以使用不同的套件版本
套件升級不影響其他應用
這樣的虛擬環(huán)境是在 Python 解釋器上的一個私有復制。這樣我們就可以在一個隔絕的環(huán)境下安裝 packages,不會影響到系統(tǒng)中全局的 Python 解釋器。虛擬環(huán)境非常有用,因為它可以防止系統(tǒng)出現(xiàn)包管理混亂和版本沖突的問題。為每個應用程序創(chuàng)建一個虛擬環(huán)境可以確保應用程序只能訪問它們自己使用的包,從而全局解釋器只作為一個源且依然整潔干凈去更多的虛擬環(huán)境。另一個好處是,虛擬環(huán)境不需要管理員權限。
安裝這里只介紹 Linux 系統(tǒng)下的安裝。在 Linux 下的安裝方法多種多樣,可以通過源碼源碼安裝,也可以用 Python 的包管理工具 easy_install 和 pip 安裝,例如:
$ sudo easy_install virtualenv
或者:
$ sudo pip install virtualenv
如果你使用的是 Ubuntu 及其衍生版本,還可以通過如下方式安裝:
$ sudo apt-get install python-virtualenv創(chuàng)建虛擬環(huán)境
安裝完成之后便可用 virtualenv 命令創(chuàng)建虛擬環(huán)境,只需要指定一個虛擬環(huán)境的名稱即可:
$ virtualenv kvenv
創(chuàng)建過程輸出如下信息:
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)建完成后會生成一個 kvenv 目錄。也可以根據(jù)需要加上參數(shù)來指定所創(chuàng)建的虛擬環(huán)境的行為,例如加上 -p 參數(shù)指定 Python 版本。
激活虛擬環(huán)境要激活創(chuàng)建的虛擬環(huán)境可以用如下命令:
$ source kvenv/bin/activate
激活成功后會在命令提示符前邊加上 (kvenv) 字符。此時,我們 which python 看有什么不同:
(kvenv)konghy$[~] => which python /home/konghy/kvenv/bin/python
會發(fā)現(xiàn)此時的 python 解釋器執(zhí)行的是虛擬環(huán)境下的,而不是系統(tǒng)全局的。Virtualenv 拷貝了 Python 可執(zhí)行文件的副本,并創(chuàng)建一些有用的腳本和安裝了項目需要的軟件包,你可以在項目的整個生命周期中安裝/升級/刪除這些包。 它也修改了一些搜索路徑,例如PYTHONPATH,以確保:
當安裝包時,它們被安裝在當前活動的virtualenv里,而不是系統(tǒng)范圍內的Python路徑。
當import代碼時,virtualenv將優(yōu)先采取本環(huán)境中安裝的包,而不是系統(tǒng)Python目錄中安裝的包。
還有一點比較重要,在默認情況下,所有安裝在系統(tǒng)范圍內的包對于 virtualenv 是可見的。 這意味著如果你將 simplejson 安裝在您的系統(tǒng) Python 目錄中,它會自動提供給所有的 virtualenvs 使用。 這種行為可以被更改,在創(chuàng)建 virtualenv 時增加 --no-site-packages 選項的 virtualenv 就不會讀取系統(tǒng)包,如下:
$ virtualenv kvenv --no-site-packages
要退出虛擬環(huán)境用如下命令:
$ deactivate在虛擬環(huán)境中安裝包
大多數(shù)的 Python 包是通過 pip 程序安裝的,在創(chuàng)建虛擬環(huán)境的時候 virtualenv 會自動添加進去。當一個虛擬環(huán)境被激活后,pip 程序的位置會被添加到 PATH 中。比如,安裝 Flask 到虛擬環(huán)境中,使用如下命令:
$ pip install flask
安裝過程會將 Flask 和它的依賴集安裝到虛擬環(huán)境中。驗證是否安裝成功,可以用如下方法:
(venv)$ python >>> import flask >>>
用如下命令可以查看當前環(huán)境安裝了哪些包:
$ pip freeze參考資料
http://flask123.sinaapp.com/a...
http://www.nowamagic.net/acad...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/43075.html
引入—— 解決兩個在python開發(fā)中很常見的問題: Python很萬能,這誰都知道(我也知道哈),但這就意味著——Python的庫多,是真的多!你要用哪個庫,就直接下載!pip install!很簡單吧,是很簡單!但是,這樣會很直接的帶來一個問題,也是很多新手容易犯得——你一看他的Python環(huán)境,全是第三方包,密密麻麻的,甚至于開個pycharm,加載第三方包都得加載半年,他還不知道為啥(傻...
摘要:坑人的版本的版本問題一直是個廣被吐槽的黑點。這些版本的沖突在開發(fā)中十分常見,而和的版本差異又加劇了這一問題。從而避免與其他版本發(fā)生干擾。 坑人的版本 Python 的版本問題一直是個廣被吐槽的黑點。以至于有人調侃說: Python 是世界上最好的兩種語言! 在這里我要說明下,對于初學者來說,版本間的語法差異其實并不大?,F(xiàn)在剛開始學 Python 的人,放心大膽地 用最新版本 即可。業(yè)內...
摘要:虛擬環(huán)境非常有用,因為它可以防止系統(tǒng)出現(xiàn)包管理混亂和版本沖突的問題。為每個應用程序創(chuàng)建一個虛擬環(huán)境可以確保應用程序只能訪問它們自己使用的包,從而全局解釋器只作為一個源且依然整潔干凈去更多的虛擬環(huán)境。另一個好處是,虛擬環(huán)境不需要管理員權限。 https://www.jianshu.com/p/08c... virtualenv 虛擬環(huán)境是在Python解釋器上的一個私有復制,你可以在一個...
摘要:為了安裝科學計算環(huán)境,控制好版本,今天上午總算折騰好了。切換和使用新的虛擬環(huán)境這樣就能切換為這個版本的虛擬環(huán)境。通過輸入查看現(xiàn)在版本,可以發(fā)現(xiàn)處于虛擬環(huán)境下了。指定包的版本多個版本并存,尤其是和的并存。下面用創(chuàng)建一個名叫的版本為的環(huán)境。 為了安裝Anaconda科學計算環(huán)境,控制好python版本,今天上午總算折騰好了。 學習python有時希望在python2.7環(huán)境下,有時希望在...
摘要:之前我們總結了使用谷歌將語音轉換為文字的基本流程,然而那只是在命令行中使用實現(xiàn)的。配置開發(fā)環(huán)境筆者使用的是樹莓派進行試驗的,其他平臺的配置方法可以在這里查找。設置驗證登錄谷歌云平臺控制臺,前往創(chuàng)建服務賬號密鑰界面。 之前我們總結了使用谷歌Cloud Speech API將語音轉換為文字的基本流程,然而那只是在命令行中使用curl實現(xiàn)的。這次我們將總結在Python中使用Cloud Sp...
閱讀 1585·2021-11-02 14:42
閱讀 2325·2021-10-11 10:58
閱讀 671·2021-09-26 09:46
閱讀 2924·2021-09-08 09:35
閱讀 1420·2021-08-24 10:01
閱讀 1245·2019-08-30 15:54
閱讀 3616·2019-08-30 15:44
閱讀 1807·2019-08-30 10:49