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