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

一、先搞懂:什么是 requirements.txt?
requirements.txt是一個純文本文件,用于記錄 Python 項目所依賴的所有第三方包及其精確版本號。它的核心作用是:
- 統(tǒng)一環(huán)境:確保開發(fā)、測試、生產(chǎn)環(huán)境使用完全相同的依賴版本,避免 “本地能跑,線上崩了” 的問題。
- 簡化協(xié)作:新人接手項目時,無需手動逐個安裝依賴,一條命令即可搞定所有依賴。
- 方便部署:在服務(wù)器或容器中部署項目時,快速還原依賴環(huán)境。
簡單來說,它就像項目的 “依賴清單”—— 有了這份清單,無論在哪個環(huá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 + 版本默認安裝,若未安裝或版本過舊,按以下步驟操作:
- 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:精確版本(推薦),強制安裝指定版本,避免版本兼容問題。>=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 包都列出來,導致文件冗余)。
步驟 1:創(chuàng)建并激活虛擬環(huán)境(關(guān)鍵!)
虛擬環(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),表示當前處于虛擬環(huán)境中。
步驟 2:安裝項目依賴(若未安裝)
在虛擬環(huán)境中,安裝項目所需的所有依賴(比如pip install flask requests),確保項目能正常運行。
步驟 3:自動生成 requirements.txt
執(zhí)行以下命令,將當前虛擬環(huán)境中的所有依賴(及其版本)寫入requirements.txt:
pip freeze > requirements.txt
此時打開項目根目錄,會發(fā)現(xiàn)已生成requirements.txt,內(nèi)容類似:

進階:用 pipreqs 生成更精簡的依賴(推薦)
pip freeze會列出虛擬環(huán)境中的所有依賴(包括項目間接依賴的包,比如安裝flask時自動安裝的werkzeug),導致requirements.txt冗余。而pipreqs工具能只識別項目代碼中實際導入的包,生成更精簡的依賴清單。
使用 pipreqs 的步驟:
- 安裝 pipreqs:
pip install pipreqs
- 進入項目根目錄,執(zhí)行命令生成
requirements.txt:# --encoding=utf8 解決中文注釋編碼問題 pipreqs . --encoding=utf8
例如,若項目代碼中只導入了flask和requests,pipreqs生成的文件會只有這兩個包,比pip freeze更簡潔。
使用requests生成:

使用pipreqs生成:

四、核心操作:用 requirements.txt 安裝依賴
當你拿到一個帶有requirements.txt的項目(比如從 GitHub 下載),只需一條命令即可安裝所有依賴。
步驟 1:激活虛擬環(huán)境(可選但推薦)
和生成時一樣,先在項目根目錄創(chuàng)建并激活虛擬環(huán)境(避免污染全局依賴)。
步驟 2:安裝所有依賴
執(zhí)行以下命令,pip會自動讀取requirements.txt中的內(nèi)容,安裝所有指定包和版本:
pip install -r requirements.txt
常用擴展參數(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)之后,原有的依賴報錯就被解決了。
五、進階技巧:管理多環(huán)境依賴
實際開發(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)境,導致全局依賴被寫入。解決方案:
- 刪除現(xiàn)有
requirements.txt。 - 按步驟創(chuàng)建并激活項目專屬虛擬環(huán)境,重新安裝依賴后用
pip freeze生成。 - 或直接用
pipreqs生成精簡版依賴。
問題 3:Windows 下激活虛擬環(huán)境提示 “權(quán)限不足”
原因:PowerShell 默認禁止執(zhí)行腳本。解決方案:
- 以 “管理員身份” 打開 PowerShell。
- 執(zhí)行命令修改執(zhí)行策略:
Set-ExecutionPolicy RemoteSigned,輸入Y確認。 - 重新激活虛擬環(huán)境:
.\venv\Scripts\Activate.ps1。
七、總結(jié)
requirements.txt看似簡單,卻是 Python 項目規(guī)范化、可移植的關(guān)鍵。掌握它的核心流程:
- 準備:確保
pip最新,用虛擬環(huán)境隔離依賴。 - 生成:新項目手動寫,老項目用
pip freeze或pipreqs自動生成。 - 安裝:
pip install -r requirements.txt一鍵還原環(huán)境。 - 進階:用多文件管理開發(fā) / 生產(chǎn)環(huán)境依賴。
養(yǎng)成在 Python 項目中使用requirements.txt的習慣,能極大減少環(huán)境不一致帶來的麻煩,讓協(xié)作和部署更高效。
到此這篇關(guān)于Python依賴管理神器requirements.txt從安裝到實戰(zhàn)的文章就介紹到這了,更多相關(guān)Python依賴管理神器requirements.txt內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
神經(jīng)網(wǎng)絡(luò)訓練采用gpu設(shè)置的方式
這篇文章主要介紹了神經(jīng)網(wǎng)絡(luò)訓練采用gpu設(shè)置的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python使用Pickle模塊進行數(shù)據(jù)保存和讀取的講解
今天小編就為大家分享一篇關(guān)于Python使用Pickle模塊進行數(shù)據(jù)保存和讀取的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04
對python創(chuàng)建及引用動態(tài)變量名的示例講解
今天小編就為大家分享一篇對python創(chuàng)建及引用動態(tài)變量名的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python函數(shù)基礎(chǔ)實例詳解【函數(shù)嵌套,命名空間,函數(shù)對象,閉包函數(shù)等】
這篇文章主要介紹了Python函數(shù)基礎(chǔ),結(jié)合實例形式詳細分析了函數(shù)嵌套,命名空間,函數(shù)對象,閉包函數(shù)等相關(guān)概念、原理、用法及操作注意事項,需要的朋友可以參考下2019-03-03
Python利用psutil獲取CPU與內(nèi)存等硬件信息
psutil是Python的一個第三方庫,提供了各種強大的硬件信息查閱功能,這篇文章主要為大家介紹了如何利用psutil獲取CPU與內(nèi)存等硬件信息,需要的可以參考一下2023-07-07

