婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 虛擬環境及venv和virtualenv的區別說明

虛擬環境及venv和virtualenv的區別說明

熱門標簽:400電話辦理費用收費 騰訊地圖標注有什么版本 外呼系統前面有錄音播放嗎 申請辦個400電話號碼 千呼ai電話機器人免費 高德地圖標注字母 鎮江人工外呼系統供應商 深圳網絡外呼系統代理商 柳州正規電銷機器人收費

一、虛擬環境概述

Python應用程序通常會使用不在標準庫內的軟件包和模塊。應用程序有時需要特定版本的庫,修復特定的錯誤,或者可以使用庫的過時版本的接口編寫應用程序。

這說明一個Python安裝可能無法滿足每個應用程序的要求。例如:應用程序A需要特定模塊的1.0版本但應用程序B需要2.0版本,則需求存在沖突,安裝版本1.0或2.0將導致某一個應用程序無法運行。

這個問題的解決方案是創建一個虛擬環境,一個目錄樹,其中安裝有特定Python版本,以及其他包。

不同的應用將可以使用不同的虛擬環境。就可以解決需求相沖突的例子。

二、創建激活虛擬環境

用于創建和管理虛擬環境的模塊稱為venv。venv通常會安裝你可用的最新版本的 Python。若系統上有多個版本的Python,可以通過運行 python3 或您想要的任何版本來指定Python版本。

1、創建虛擬環境

如項目名叫tutorial,創建對應的文件夾然后切換到根目錄:cd tutorial。

如果使用venv,使用命令:$ python -m venv tutorial-env

其中tutorial-env是虛擬環境的名字,也作為創建的虛擬環境文件夾名稱,可以自由修改。如果tutorial-env目錄不存在,它將為你創建一個,并在其中創建包含Python解釋器,標準庫和各種支持文件的副本的目錄。

注意:需要tutorial-env的虛擬環境文件夾名稱加入 .gitignore文件以便讓Git忽略。

虛擬環境的常用目錄位置是 .venv。這個名稱通常會令該目錄在你的終端中保持隱藏,從而避免需要對所在目錄進行額外解釋的一般名稱。它還能防止與某些工具所支持的 .env 環境變量定義文件發生沖突。

如果使用virtualenv,則使用下面的命令:$ virtualenv snow-venv

2、激活虛擬環境

通過執行對應的激活腳本來激活虛擬環境,不同操作系統的激活命令(激活腳本及路徑)有一點不同。

Windows(CMD.exe):$ tutorial-env\Scripts\activate.bat

Linux和macOS(bash/zsh):$ source tutorial-env/bin/activate

activate.bat這個腳本是為bash shell編寫的。如果你使用csh或fish shell,你應該改用activate.csh 或activate.fish腳本。

激活虛擬環境以后,命令行提示符前會顯示當前虛擬環境的名字,并修改環境以使python命令所運行的將是已安裝的特定Python版本。

退出虛擬環境:deactivate

三、venv模塊和virtualenv工具

virtualenv:Python虛擬環境管理工具。

venv:Python標準庫內置的虛擬環境管理工具,Python 3.3加入,Python 3.5開始作為管理虛擬環境的推薦工具,用法類似virtualenv,唯一不同的是創建虛擬環境的方式。

Python 2.x時,創建虛擬環境需要安裝第三方的virtualenv,但Python 3.3之后,標準庫里內置了venv模塊,可以用來創建虛擬環境。

如果你使用Python 3.3及以上版本,推薦使用標準庫內置的venv 模塊替代virtualenv。

如果你使用Python 2,就只能選擇virtualenv,你需要額外安裝它。pip install virtualenv

補充:【python虛擬環境】virtualenv和venv不一樣嗎

在開發python應用程序的時候,系統安裝的python3只有一個版本:3.4。所有的第三方的包都回被pip安裝到python3的site-packages目錄下。

如果我們要要同時開發多個應用程序,那這些應用都共用一個python,就是安裝在系統的python3。如果應用A需要jinja 2.7,而應用B需要jinja 2.6怎么辦?

這種情況下,每個應用需要各自擁有一套“獨立”的python運行環境。有兩個常用工具用于創建python“獨立”環境:

venv is available by default in Python 3.3 and later, and installs pip and setuptools into created virtual environments in Python 3.4 and later.

virtualenv needs to be installed separately, but supports Python 2.7+ and Python 3.3+, and pip, setuptools and wheel are always installed into created virtual environments by default (regardless of Python version).

virtualenv

virtualenv就是用來為一個應用創建一套“隔離”的python運行環境。

首先,我們用pip安裝virtualenv

pip3 install virtualenv

然后,假定我們要開發一個新的項目,需要一套獨立的python運行環境,可以這么做:

在項目目錄下,創建一個獨立的python運行環境,命名為 venv

virtualenv --no-site-packages venv

命令 virtualenv就可以創建一個獨立的python運行環境,我們還加上了參數 --no-site-packages,這樣,已經安裝到系統python環境中的所有第三方包都不會復制過來,這樣,我們就得到了一個不帶任何第三方包的“干凈”的pyhton運行環境。

新建的python環境被放到項目錄下的venv目錄,有了 venv 這個python環境,就可以用source進入該環境:

source ./venv/bin/activate

或者是

source ./venv/Scripts/activate

注意查看activate命令被放在了哪個目錄下。

執行上面的命令后,可以看懂命令指示符變了,有個 (venv) 前綴,表示當前環境是一個名為 venv 的python環境,下面可以正常安裝各種第三方包,并運行python命令。

在 venv 環境下,用 pip 安裝的包都在安裝到了 venv 這個環境下,系統python環境不受任何影響,也就是說, venv環境是專門針對當前項目創建的。

退出 venv 環境,使用 deactivate 命令:

deactivate

這樣就回到了正常的環境。

viratualenv是如何創建“獨立”的python運行環境呢?其實就是把系統python復制一份到virtualenv的環境,用命令 source 進入一個virutalenv環境時,virtualenv會修改相關環節變量,讓命令python和pip均指向當前的virtualenv環境。

venv

venv不用安裝,不過需要python3.3以上。創建一個獨立的python運行環境,命名為venv

python3 -m venv ./venv

上面的命令會在當前目錄下創建一個名為venv的python環境中。進入和退出該環境的方式和virtualenv一致。

參考文檔:官方文檔

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • python虛擬環境的安裝和配置(virtualenv,virtualenvwrapper)
  • Python虛擬環境venv用法詳解
  • python虛擬環境模塊venv使用及示例
  • windows下python虛擬環境virtualenv安裝和使用詳解
  • Python虛擬環境virtualenv的安裝與使用詳解

標簽:海南 平頂山 郴州 大慶 合肥 烏蘭察布 烏蘭察布 哈爾濱

巨人網絡通訊聲明:本文標題《虛擬環境及venv和virtualenv的區別說明》,本文關鍵詞  虛擬,環境,及,venv,和,virtualenv,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《虛擬環境及venv和virtualenv的區別說明》相關的同類信息!
  • 本頁收集關于虛擬環境及venv和virtualenv的區別說明的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 鲁甸县| 重庆市| 万州区| 黑河市| 巴东县| 十堰市| 石林| 珠海市| 通榆县| 莎车县| 广宁县| 潞城市| 河南省| 大新县| 永新县| 白城市| 涟水县| 班戈县| 孝感市| 武山县| 泽普县| 临猗县| 蚌埠市| 洛浦县| 宣武区| 娄烦县| 沂水县| 阿城市| 涟水县| 湟源县| 凤阳县| 凌海市| 江阴市| 娄底市| 宁化县| 嘉祥县| 潼南县| 新绛县| 乾安县| 曲阜市| 武乡县|