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

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

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

前言

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

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

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

python的虛擬環(huán)境總有兩款:anaconda和venv,anaconda是一個跨平臺的python發(fā)行版,提供了用于科學(xué)計算和數(shù)據(jù)分析大量的庫和工具,有著復(fù)雜的依賴項解析和環(huán)境管理能力,這個風(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時,它們之間又有著各自不同的依賴庫時,venv就可以將它們隔離開,保障依賴模塊的一致性,實現(xiàn)應(yīng)用穩(wěn)定。使用虛擬環(huán)境的優(yōu)點(diǎn)還有:

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

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

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

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

python -m venv <env_name>

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

示例:

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

python -m venv myenv

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

  • bin/:包含虛擬環(huán)境中的可執(zhí)行文件(如 Python、pip)。
  • lib/:包含虛擬環(huán)境的 Python 庫。
  • 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

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

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

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

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

source myenv/bin/activate

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

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

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

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

4.1 安裝依賴庫

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

# 安裝 requests 庫
pip install requests

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

pip freeze

輸出類似:

makefile

requests==2.32.3

4.2 運(yùn)行 Python 程序

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

python my_script.py

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

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

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

python --version

4.4 使用 pip 管理依賴

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

  • 安裝庫:pip install <package>
  • 升級庫:pip install --upgrade <package>
  • 卸載庫:pip uninstall <package>

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

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

deactivate

執(zhí)行該命令后,你會看到命令行中的 (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)境中已安裝的所有依賴庫,并保存為 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 文件安裝相同的依賴:

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

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

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

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

# 升級 requests 庫
pip install --upgrade requests

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

# 升級所有依賴庫
pip install --upgrade -r requirements.txt

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

8. 應(yīng)用場景

8.1 項目隔離

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

8.2 依賴管理

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

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

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

9. 總結(jié)

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

    完美解決python3.7 pip升級 拒絕訪問問題

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

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

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

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

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

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

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

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

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

    python中pandas輸出完整、對齊的表格的方法

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

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

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

最新評論