欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中venv虛擬環(huán)境超詳細(xì)講解

 更新時(shí)間:2025年04月11日 08:29:51   作者:網(wǎng)絡(luò)風(fēng)云  
虛擬環(huán)境是一個(gè)獨(dú)立的Python環(huán)境,它與系統(tǒng)的全局Python環(huán)境隔離,這篇文章主要介紹了Python中venv虛擬環(huán)境的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

venv是Python 內(nèi)置的用于創(chuàng)建虛擬環(huán)境的工具,它可以為每個(gè)項(xiàng)目創(chuàng)建一個(gè)獨(dú)立的 Python 環(huán)境,避免不同項(xiàng)目之間的依賴沖突。虛擬環(huán)境允許每個(gè)項(xiàng)目擁有自己的依賴庫(kù),而不影響全局的 Python 環(huán)境。它是管理 Python 項(xiàng)目依賴和避免版本沖突的重要工具。

1. 什么是虛擬環(huán)境?

虛擬環(huán)境是一個(gè)獨(dú)立的 Python 環(huán)境,它與系統(tǒng)的全局 Python 環(huán)境隔離。每個(gè)虛擬環(huán)境可以有自己的 Python 版本、庫(kù)和工具,這樣不同的項(xiàng)目可以使用不同版本的依賴庫(kù),而互不干擾。

python的虛擬環(huán)境總有兩款:anaconda和venv,anaconda是一個(gè)跨平臺(tái)的python發(fā)行版,提供了用于科學(xué)計(jì)算和數(shù)據(jù)分析大量的庫(kù)和工具,有著復(fù)雜的依賴項(xiàng)解析和環(huán)境管理能力,這個(gè)風(fēng)云以后再單獨(dú)詳細(xì)介紹,今天主要講python內(nèi)置的venv。先看下圖:

這就是虛擬環(huán)境和系統(tǒng)環(huán)境的存在關(guān)系,可以很清晰地看出,當(dāng)虛擬環(huán)境01使用python3.8,而虛擬環(huán)境使用python3.12時(shí),它們之間又有著各自不同的依賴庫(kù)時(shí),venv就可以將它們隔離開(kāi),保障依賴模塊的一致性,實(shí)現(xiàn)應(yīng)用穩(wěn)定。使用虛擬環(huán)境的優(yōu)點(diǎn)還有:

  • 避免依賴沖突:每個(gè)項(xiàng)目的依賴都在獨(dú)立的環(huán)境中管理,避免了不同項(xiàng)目間的依賴版本沖突。
  • 簡(jiǎn)化部署:可以輕松復(fù)制環(huán)境,確保開(kāi)發(fā)、測(cè)試和生產(chǎn)環(huán)境的一致性。
  • 不污染全局環(huán)境:不會(huì)對(duì)全局的 Python 環(huán)境或系統(tǒng)級(jí)的 Python 庫(kù)造成影響。

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

2.1 使用 venv 創(chuàng)建虛擬環(huán)境

venv 是 Python 3.3 及以上版本自帶的模塊,因此無(wú)需安裝任何額外的庫(kù)。創(chuàng)建虛擬環(huán)境的基本命令如下:

python -m venv <env_name>

其中,<env_name> 是虛擬環(huán)境的名稱??梢灾付ㄒ粋€(gè)目錄作為虛擬環(huán)境的位置,Python 會(huì)在該目錄下創(chuàng)建虛擬環(huán)境。

示例:

# 創(chuàng)建一個(gè)名為 "myenv" 的虛擬環(huán)境

python -m venv myenv

執(zhí)行此命令后,myenv 目錄會(huì)包含以下內(nèi)容:

  • bin/:包含虛擬環(huán)境中的可執(zhí)行文件(如 Python、pip)。
  • lib/:包含虛擬環(huán)境的 Python 庫(kù)。
  • pyvenv.cfg:虛擬環(huán)境的配置文件,包含 Python 版本等信息。

3. 激活虛擬環(huán)境

創(chuàng)建虛擬環(huán)境后,必須激活它才能在該環(huán)境中運(yùn)行 Python 和安裝依賴。

3.1 激活虛擬環(huán)境(Windows)

在 Windows 系統(tǒng)中,使用以下命令激活虛擬環(huán)境:

myenv\Scripts\activate

成功激活后,你會(huì)看到命令提示符發(fā)生變化,顯示虛擬環(huán)境的名稱:

(myenv) C:\path\to\project>

3.2 激活虛擬環(huán)境(Linux/macOS)

在 Linux 或 macOS 系統(tǒng)中,使用以下命令激活虛擬環(huán)境:

source myenv/bin/activate

成功激活后,命令行會(huì)顯示 (myenv),表示當(dāng)前處于虛擬環(huán)境中:

(myenv) user@host:path/to/project$

4. 使用虛擬環(huán)境

在虛擬環(huán)境激活后,你可以使用其中的 Python 解釋器和 pip 安裝依賴庫(kù)。

4.1 安裝依賴庫(kù)

可以使用 pip 安裝項(xiàng)目所需的庫(kù),所有庫(kù)都會(huì)安裝在虛擬環(huán)境中,而不會(huì)影響全局 Python 環(huán)境。

# 安裝 requests 庫(kù)
pip install requests

安裝的依賴將會(huì)記錄在虛擬環(huán)境的 lib/ 目錄中,你可以通過(guò) pip freeze 命令查看已安裝的庫(kù):

pip freeze

輸出類似:

makefile

requests==2.32.3

4.2 運(yùn)行 Python 程序

在虛擬環(huán)境中,可以直接運(yùn)行 Python 程序:

python my_script.py

這里的 python 會(huì)指向虛擬環(huán)境中的 Python 解釋器。

4.3 查看虛擬環(huán)境的 Python 版本

每個(gè)虛擬環(huán)境都有獨(dú)立的 Python 解釋器,你可以通過(guò)以下命令查看當(dāng)前環(huán)境使用的 Python 版本:

python --version

4.4 使用 pip 管理依賴

在虛擬環(huán)境中,你可以使用 pip 來(lái)管理項(xiàng)目的依賴庫(kù),安裝、升級(jí)、卸載庫(kù)等。

  • 安裝庫(kù):pip install <package>
  • 升級(jí)庫(kù):pip install --upgrade <package>
  • 卸載庫(kù):pip uninstall <package>

5. 退出虛擬環(huán)境

退出虛擬環(huán)境可以使用 deactivate 命令。退出后,你的終端將恢復(fù)到全局 Python 環(huán)境。

deactivate

執(zhí)行該命令后,你會(huì)看到命令行中的 (myenv) 消失,表示已經(jīng)退出虛擬環(huán)境。

6. 導(dǎo)出和導(dǎo)入虛擬環(huán)境的依賴

6.1 導(dǎo)出虛擬環(huán)境的依賴

使用 pip freeze 命令可以導(dǎo)出當(dāng)前虛擬環(huán)境中已安裝的所有依賴庫(kù),并保存為 requirements.txt 文件。該文件可以用于在其他環(huán)境中重現(xiàn)相同的依賴。

# 導(dǎo)出當(dāng)前虛擬環(huán)境的依賴到 requirements.txt 文件
pip freeze > requirements.txt

requirements.txt 文件中將包含類似以下內(nèi)容:

requests==2.32.3

6.2 在其他環(huán)境中安裝依賴

在其他機(jī)器或虛擬環(huán)境中,可以使用 requirements.txt 文件安裝相同的依賴:

# 在另一個(gè)虛擬環(huán)境中安裝依賴
pip install -r requirements.txt

這將根據(jù) requirements.txt 文件中的信息安裝所有依賴。

7. 升級(jí)虛擬環(huán)境中的依賴

當(dāng)你需要升級(jí)虛擬環(huán)境中的某個(gè)庫(kù)時(shí),可以使用 pip install --upgrade 命令:

# 升級(jí) requests 庫(kù)
pip install --upgrade requests

如果你希望升級(jí)所有已安裝的庫(kù),可以執(zhí)行:

# 升級(jí)所有依賴庫(kù)
pip install --upgrade -r requirements.txt

這樣會(huì)根據(jù) requirements.txt 中的依賴版本升級(jí)所有庫(kù)。

8. 應(yīng)用場(chǎng)景

8.1 項(xiàng)目隔離

在多個(gè)項(xiàng)目中使用虛擬環(huán)境,可以確保每個(gè)項(xiàng)目擁有獨(dú)立的依賴,不同項(xiàng)目間不會(huì)發(fā)生版本沖突。例如,你的項(xiàng)目 A 使用的是 requests==2.32.3,而項(xiàng)目 B 使用的是 requests==2.25.1,兩者之間不會(huì)相互干擾。

8.2 依賴管理

通過(guò) venv 和 requirements.txt,可以輕松地將所有依賴庫(kù)的版本信息記錄下來(lái),并在不同環(huán)境中重現(xiàn)相同的開(kāi)發(fā)或生產(chǎn)環(huán)境,保證項(xiàng)目的可移植性和一致性。

8.3 開(kāi)發(fā)和生產(chǎn)環(huán)境的切換

你可以為開(kāi)發(fā)和生產(chǎn)環(huán)境創(chuàng)建不同的虛擬環(huán)境,以避免開(kāi)發(fā)過(guò)程中使用的庫(kù)與生產(chǎn)環(huán)境中的庫(kù)發(fā)生沖突。這種方式有助于確保生產(chǎn)環(huán)境的穩(wěn)定性。

9. 總結(jié)

venv 是 Python 中創(chuàng)建和管理虛擬環(huán)境的標(biāo)準(zhǔn)工具,它為每個(gè)項(xiàng)目提供了獨(dú)立的環(huán)境,避免了庫(kù)版本沖突和依賴污染。通過(guò)本文的介紹,你應(yīng)該能夠:

  • 創(chuàng)建、激活和退出虛擬環(huán)境;
  • 安裝、升級(jí)和卸載項(xiàng)目依賴;
  • 導(dǎo)出和導(dǎo)入依賴清單;
  • 使用虛擬環(huán)境管理多個(gè)項(xiàng)目和開(kāi)發(fā)環(huán)境。

venv 是 Python 項(xiàng)目管理中不可或缺的工具,尤其對(duì)于多項(xiàng)目開(kāi)發(fā)和團(tuán)隊(duì)協(xié)作具有重要意義。

到此這篇關(guān)于Python中venv虛擬環(huán)境的文章就介紹到這了,更多相關(guān)Python中venv虛擬環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python數(shù)學(xué)建模學(xué)習(xí)模擬退火算法多變量函數(shù)優(yōu)化示例解析

    Python數(shù)學(xué)建模學(xué)習(xí)模擬退火算法多變量函數(shù)優(yōu)化示例解析

    模擬退火算法借鑒了統(tǒng)計(jì)物理學(xué)的思想,是一種簡(jiǎn)單、通用的啟發(fā)式優(yōu)化算法,并在理論上具有概率性全局優(yōu)化性能,因而在科研和工程中得到了廣泛的應(yīng)用
    2021-10-10
  • Python利用pyecharts實(shí)現(xiàn)數(shù)據(jù)可視化的示例代碼

    Python利用pyecharts實(shí)現(xiàn)數(shù)據(jù)可視化的示例代碼

    Pyecharts是一個(gè)用于生成 Echarts 圖表的 Python 庫(kù),Echarts 是一個(gè)由百度開(kāi)源的數(shù)據(jù)可視化工具,它提供的圖表種類豐富,交互性強(qiáng),兼容性好,非常適合用于數(shù)據(jù)分析結(jié)果的展示,本文將給大家介紹Python利用pyecharts實(shí)現(xiàn)數(shù)據(jù)可視化,需要的朋友可以參考下
    2024-09-09
  • python 解壓、復(fù)制、刪除 文件的實(shí)例代碼

    python 解壓、復(fù)制、刪除 文件的實(shí)例代碼

    這篇文章主要介紹了python 解壓、復(fù)制、刪除 文件的實(shí)例代碼,代碼簡(jiǎn)單易懂非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 完美解決python3.7 pip升級(jí) 拒絕訪問(wèn)問(wèn)題

    完美解決python3.7 pip升級(jí) 拒絕訪問(wèn)問(wèn)題

    這篇文章主要介紹了python3.7 pip升級(jí) 拒絕訪問(wèn) 解決方案,文中給大家提到了python中for循環(huán)問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • Python獲取對(duì)象屬性的幾種方式小結(jié)

    Python獲取對(duì)象屬性的幾種方式小結(jié)

    這篇文章主要介紹了Python獲取對(duì)象屬性的幾種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • 簡(jiǎn)單了解python filter、map、reduce的區(qū)別

    簡(jiǎn)單了解python filter、map、reduce的區(qū)別

    這篇文章主要介紹了簡(jiǎn)單了解python filter、map、reduce的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python 實(shí)現(xiàn)鍵盤鼠標(biāo)按鍵模擬

    Python 實(shí)現(xiàn)鍵盤鼠標(biāo)按鍵模擬

    這篇文章主要介紹了Python 實(shí)現(xiàn)鍵盤按鍵模擬的方法,幫助大家提高辦公效率,感興趣的朋友可以了解下
    2020-11-11
  • 跟老齊學(xué)Python之重回函數(shù)

    跟老齊學(xué)Python之重回函數(shù)

    在本教程的開(kāi)始部分,就已經(jīng)引入了函數(shù)的概念:《永遠(yuǎn)強(qiáng)大的函數(shù)》,之所以那時(shí)候就提到函數(shù),是因?yàn)槲矣X(jué)得函數(shù)之重要,遠(yuǎn)遠(yuǎn)超過(guò)一般。這里,重回函數(shù),一是復(fù)習(xí),二是要在已經(jīng)學(xué)習(xí)的基礎(chǔ)上,對(duì)函數(shù)有更深刻的理解。
    2014-10-10
  • python中pandas輸出完整、對(duì)齊的表格的方法

    python中pandas輸出完整、對(duì)齊的表格的方法

    今天使用python計(jì)算數(shù)據(jù)相關(guān)性,但是發(fā)現(xiàn)計(jì)算出的表格中間好多省略號(hào),而且也不對(duì)齊。怎么解決這個(gè)問(wèn)題,下面小編給大家?guī)?lái)了python中pandas如何輸出完整、對(duì)齊的表格,感興趣的朋友一起看看吧
    2021-10-10
  • 基于opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng)(附demo)

    基于opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng)(附demo)

    人臉識(shí)別就是一個(gè)程序能識(shí)別給定圖像或視頻中的人臉,本文主要介紹了opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng),本文不涉及分類器、訓(xùn)練識(shí)別器等算法原理,感興趣的可以了解一下
    2021-11-11

最新評(píng)論