最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python依賴管理神器requirements.txt從安裝到實(shí)戰(zhàn)完全指南

 更新時間:2026年05月26日 09:28:29   作者:小寧愛Python  
requirements.txt是 Python 項目中用于統(tǒng)一管理庫包版本的純文本文件,它記錄了項目依賴的所有庫包及其精確版本(或版本范圍),這篇文章主要介紹了Python依賴管理神器requirements.txt從安裝到實(shí)戰(zhàn)的相關(guān)資料,需要的朋友可以參考下

前言

在 Python 開發(fā)中,你是否遇到過這樣的窘境:本地跑通的項目,部署到服務(wù)器就報錯?同事傳的代碼,在你電腦上卻因 “缺少模塊” 無法運(yùn)行?這些問題的根源,大多是依賴環(huán)境不一致。而requirements.txt,就是 Python 生態(tài)中解決依賴管理的 “標(biāo)準(zhǔn)配置”。今天這篇文章,從基礎(chǔ)概念到實(shí)戰(zhàn)操作,帶你徹底掌握它的使用。

一、先搞懂:什么是 requirements.txt?

requirements.txt是一個純文本文件,用于記錄 Python 項目所依賴的所有第三方包及其精確版本號。它的核心作用是:

  • 統(tǒng)一環(huán)境:確保開發(fā)、測試、生產(chǎn)環(huán)境使用完全相同的依賴版本,避免 “本地能跑,線上崩了” 的問題。
  • 簡化協(xié)作:新人接手項目時,無需手動逐個安裝依賴,一條命令即可搞定所有依賴。
  • 方便部署:在服務(wù)器或容器中部署項目時,快速還原依賴環(huán)境。

簡單來說,它就像項目的 “依賴清單”—— 有了這份清單,無論在哪個環(huán)境,都能快速復(fù)刻出項目需要的 “運(yùn)行土壤”。

二、準(zhǔn)備工作:確保 pip 已安裝(核心工具)

requirements.txt的使用完全依賴 Python 的包管理工具pip(Python Package Installer),所以第一步要確保pip已正確安裝并升級到最新版。

1. 檢查 pip 是否安裝

打開終端(Windows 用 “命令提示符” 或 PowerShell,macOS/Linux 用 “終端”),輸入以下命令:

pip --version  # 或 pip3 --version(區(qū)分Python2和Python3)

如果輸出類似pip 24.0 from /usr/local/lib/python3.11/site-packages/pip (python 3.11),說明pip已安裝;若提示 “命令不存在”,則需要先安裝pip

2. 安裝 / 升級 pip

pip通常隨 Python 3.4 + 版本默認(rèn)安裝,若未安裝或版本過舊,按以下步驟操作:

  • Windows/macOS/Linux 通用升級命令
    # 升級pip到最新版
    python -m pip install --upgrade pip
    # 若系統(tǒng)同時有Python2和Python3,用python3指定Python3
    python3 -m pip install --upgrade pip

三、核心操作:生成 requirements.txt

根據(jù)項目狀態(tài),生成requirements.txt有兩種常見場景:新項目手動創(chuàng)建、已有項目自動生成。

場景 1:新項目(從零開始)

如果項目剛起步,依賴較少,可直接手動創(chuàng)建requirements.txt文件:

  • 在項目根目錄下,新建一個名為requirements.txt的文本文件(無后綴,純文本)。
  • 按 “包名==版本號” 的格式,逐行寫入依賴。例如:
    # 注釋:項目基礎(chǔ)依賴
    flask==2.3.3          # Web框架,指定2.3.3版本
    requests>=2.31.0      # HTTP請求庫,最低2.31.0版本
    pandas~=2.1.0         # 數(shù)據(jù)分析庫,兼容2.1.x系列版本

版本號寫法說明(關(guān)鍵?。?/strong>

版本號的指定決定了依賴的兼容性,常見寫法有 3 種:

  • ==x.y.z精確版本(推薦),強(qiáng)制安裝指定版本,避免版本兼容問題。
  • >=x.y.z最低版本,安裝不低于該版本的最新版,適合對版本不敏感的依賴。
  • ~=x.y.z兼容版本,允許升級到同系列的小版本(如~=2.1.0可安裝 2.1.1、2.1.9,但不支持 2.2.0)。

場景 2:已有項目(自動生成,主要使用場景)

如果項目已開發(fā)一段時間,手動記錄依賴太麻煩,可借助pip freeze命令自動生成requirements.txt,但有個重要前提:先激活項目的虛擬環(huán)境(否則會把全局所有 Python 包都列出來,導(dǎo)致文件冗余)。

步驟 1:創(chuàng)建并激活虛擬環(huán)境(關(guān)鍵?。?/strong>

虛擬環(huán)境能隔離不同項目的依賴,避免全局包污染。以 Python 自帶的venv為例:

# 1. 在項目根目錄創(chuàng)建虛擬環(huán)境(venv是環(huán)境目錄名,可自定義)
python -m venv venv  # 或 python3 -m venv venv

# 2. 激活虛擬環(huán)境
# Windows(命令提示符):
venv\Scripts\activate
# Windows(PowerShell):
.\venv\Scripts\Activate.ps1
# macOS/Linux:
source venv/bin/activate

激活成功后,終端前綴會出現(xiàn)(venv),表示當(dāng)前處于虛擬環(huán)境中。

步驟 2:安裝項目依賴(若未安裝)

在虛擬環(huán)境中,安裝項目所需的所有依賴(比如pip install flask requests),確保項目能正常運(yùn)行。

步驟 3:自動生成 requirements.txt

執(zhí)行以下命令,將當(dāng)前虛擬環(huán)境中的所有依賴(及其版本)寫入requirements.txt

pip freeze > requirements.txt

此時打開項目根目錄,會發(fā)現(xiàn)已生成requirements.txt,內(nèi)容類似:

進(jìn)階:用 pipreqs 生成更精簡的依賴(推薦)

pip freeze會列出虛擬環(huán)境中的所有依賴(包括項目間接依賴的包,比如安裝flask時自動安裝的werkzeug),導(dǎo)致requirements.txt冗余。而pipreqs工具能只識別項目代碼中實(shí)際導(dǎo)入的包,生成更精簡的依賴清單。

使用 pipreqs 的步驟:

  • 安裝 pipreqs:
    pip install pipreqs
    
  • 進(jìn)入項目根目錄,執(zhí)行命令生成requirements.txt
    # --encoding=utf8 解決中文注釋編碼問題
    pipreqs . --encoding=utf8
    

例如,若項目代碼中只導(dǎo)入了flaskrequestspipreqs生成的文件會只有這兩個包,比pip freeze更簡潔。

使用requests生成:

使用pipreqs生成:

四、核心操作:用 requirements.txt 安裝依賴

當(dāng)你拿到一個帶有requirements.txt的項目(比如從 GitHub 下載),只需一條命令即可安裝所有依賴。

步驟 1:激活虛擬環(huán)境(可選但推薦)

和生成時一樣,先在項目根目錄創(chuàng)建并激活虛擬環(huán)境(避免污染全局依賴)。

步驟 2:安裝所有依賴

執(zhí)行以下命令,pip會自動讀取requirements.txt中的內(nèi)容,安裝所有指定包和版本:

pip install -r requirements.txt

常用擴(kuò)展參數(shù)

  • 升級依賴:如果想將依賴升級到requirements.txt指定版本范圍內(nèi)的最新版(需配合>=~=寫法):
    pip install --upgrade -r requirements.txt
    
  • 使用國內(nèi)鏡像源(提速):國內(nèi)直接訪問 PyPI 可能較慢,可指定清華、阿里等鏡像源:
  • pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  • 不緩存安裝包(節(jié)省空間):適合 CI/CD 或臨時環(huán)境,避免緩存冗余包:
  • pip install -r requirements.txt --no-cache-dir

執(zhí)行命令安轉(zhuǎn)之后,原有的依賴報錯就被解決了。

五、進(jìn)階技巧:管理多環(huán)境依賴

實(shí)際開發(fā)中,項目可能需要區(qū)分開發(fā)環(huán)境生產(chǎn)環(huán)境的依賴(比如開發(fā)時需要pytest做測試,生產(chǎn)環(huán)境不需要)。這時可以創(chuàng)建多個requirements文件。

示例:多環(huán)境依賴文件結(jié)構(gòu)

plaintext

your_project/
├── requirements.txt       # 生產(chǎn)環(huán)境依賴(核心依賴,如flask、requests)
└── requirements-dev.txt   # 開發(fā)環(huán)境依賴(額外依賴,如pytest、flake8)

1. requirements.txt(生產(chǎn)環(huán)境)

flask==2.3.3
requests==2.31.0
pandas==2.1.0

2. requirements-dev.txt(開發(fā)環(huán)境)

# 先包含生產(chǎn)環(huán)境依賴
-r requirements.txt
# 再添加開發(fā)專屬依賴
pytest==7.4.3          # 測試框架
flake8==6.1.0          # 代碼規(guī)范檢查
black==23.10.1         # 代碼格式化工具

3. 安裝對應(yīng)環(huán)境的依賴

  • 生產(chǎn)環(huán)境安裝:pip install -r requirements.txt
  • 開發(fā)環(huán)境安裝:pip install -r requirements-dev.txt

六、常見問題與解決方案

問題 1:執(zhí)行pip install -r時報 “版本沖突”

原因:不同依賴包對同一個子依賴的版本要求不一致(比如 A 包需要requests<2.30,B 包需要requests>=2.31)。解決方案

  • pipdeptree查看依賴樹,定位沖突來源:pip install pipdeptree && pipdeptree
  • 手動調(diào)整沖突包的版本,找到一個雙方都兼容的版本(比如將 A 包升級到支持requests>=2.31的版本)。

問題 2:pip freeze生成的依賴太多,包含無用包

原因:未激活虛擬環(huán)境,導(dǎo)致全局依賴被寫入。解決方案

  • 刪除現(xiàn)有requirements.txt
  • 按步驟創(chuàng)建并激活項目專屬虛擬環(huán)境,重新安裝依賴后用pip freeze生成。
  • 或直接用pipreqs生成精簡版依賴。

問題 3:Windows 下激活虛擬環(huán)境提示 “權(quán)限不足”

原因:PowerShell 默認(rèn)禁止執(zhí)行腳本。解決方案

  • 以 “管理員身份” 打開 PowerShell。
  • 執(zhí)行命令修改執(zhí)行策略:Set-ExecutionPolicy RemoteSigned,輸入Y確認(rèn)。
  • 重新激活虛擬環(huán)境:.\venv\Scripts\Activate.ps1。

七、總結(jié)

requirements.txt看似簡單,卻是 Python 項目規(guī)范化、可移植的關(guān)鍵。掌握它的核心流程:

  • 準(zhǔn)備:確保pip最新,用虛擬環(huán)境隔離依賴。
  • 生成:新項目手動寫,老項目用pip freezepipreqs自動生成。
  • 安裝pip install -r requirements.txt一鍵還原環(huán)境。
  • 進(jìn)階:用多文件管理開發(fā) / 生產(chǎn)環(huán)境依賴。

養(yǎng)成在 Python 項目中使用requirements.txt的習(xí)慣,能極大減少環(huán)境不一致帶來的麻煩,讓協(xié)作和部署更高效。

到此這篇關(guān)于Python依賴管理神器requirements.txt從安裝到實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)Python依賴管理神器requirements.txt內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式

    神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式

    這篇文章主要介紹了神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python使用Pickle模塊進(jìn)行數(shù)據(jù)保存和讀取的講解

    Python使用Pickle模塊進(jìn)行數(shù)據(jù)保存和讀取的講解

    今天小編就為大家分享一篇關(guān)于Python使用Pickle模塊進(jìn)行數(shù)據(jù)保存和讀取的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • python矩陣的基本運(yùn)算及各種操作

    python矩陣的基本運(yùn)算及各種操作

    python的numpy庫提供矩陣運(yùn)算的功能,因此我們在需要矩陣運(yùn)算的時候,需要導(dǎo)入numpy的包,下面這篇文章主要給大家介紹了關(guān)于python矩陣的基本運(yùn)算及各種操作的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 對python創(chuàng)建及引用動態(tài)變量名的示例講解

    對python創(chuàng)建及引用動態(tài)變量名的示例講解

    今天小編就為大家分享一篇對python創(chuàng)建及引用動態(tài)變量名的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python中的魔術(shù)方法__new__詳解

    Python中的魔術(shù)方法__new__詳解

    這篇文章主要介紹了Python中的魔術(shù)方法__new__的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Python函數(shù)基礎(chǔ)實(shí)例詳解【函數(shù)嵌套,命名空間,函數(shù)對象,閉包函數(shù)等】

    Python函數(shù)基礎(chǔ)實(shí)例詳解【函數(shù)嵌套,命名空間,函數(shù)對象,閉包函數(shù)等】

    這篇文章主要介紹了Python函數(shù)基礎(chǔ),結(jié)合實(shí)例形式詳細(xì)分析了函數(shù)嵌套,命名空間,函數(shù)對象,閉包函數(shù)等相關(guān)概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2019-03-03
  • Python利用psutil獲取CPU與內(nèi)存等硬件信息

    Python利用psutil獲取CPU與內(nèi)存等硬件信息

    psutil是Python的一個第三方庫,提供了各種強(qiáng)大的硬件信息查閱功能,這篇文章主要為大家介紹了如何利用psutil獲取CPU與內(nèi)存等硬件信息,需要的可以參考一下
    2023-07-07
  • python編寫扎金花小程序的實(shí)例代碼

    python編寫扎金花小程序的實(shí)例代碼

    這篇文章主要介紹了python編寫扎金花小程序的實(shí)例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python的Flask框架路由實(shí)現(xiàn)詳解

    Python的Flask框架路由實(shí)現(xiàn)詳解

    這篇文章主要介紹了Python的Flask框架路由實(shí)現(xiàn)詳解,在啟動程序時,python解釋器會從上到下對代碼進(jìn)行解釋,當(dāng)遇到裝飾器時,會執(zhí)行,并把函數(shù)對應(yīng)的路由以字典的形式進(jìn)行存儲,當(dāng)請求到來時,即可根據(jù)路由查找對應(yīng)要執(zhí)行的函數(shù)方法,需要的朋友可以參考下
    2023-08-08
  • django驗證系統(tǒng)的具體使用

    django驗證系統(tǒng)的具體使用

    本文主要介紹了django驗證系統(tǒng)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論

开封市| 四子王旗| 平舆县| 郧西县| 武穴市| 德安县| 黄冈市| 景德镇市| 马尔康县| 太仆寺旗| 吉木萨尔县| 惠安县| 琼结县| 沐川县| 平邑县| 兰考县| 高台县| 龙陵县| 乌什县| 仲巴县| 邵东县| 和田县| 弥渡县| 东丰县| 共和县| 隆化县| 岫岩| 清徐县| 大同市| 通州市| 武安市| 元谋县| 平昌县| 勐海县| 会昌县| 南宫市| 邵阳县| 太仆寺旗| 黄石市| 长白| 霍山县|