python?中的requirements.txt?文件的使用詳情
實(shí)戰(zhàn)場(chǎng)景
在部署Python應(yīng)用時(shí),需要把第三方庫(kù)進(jìn)行安裝,這里可以使用requirements.txt文件,其中記錄了所有依賴(lài)包以及精確的版本號(hào)。
requirements.txt文件在我們?cè)L問(wèn)開(kāi)源 Python項(xiàng)目的時(shí)候,極常見(jiàn)。
簡(jiǎn)單使用流程概述
使用pip freeze命令生成requirements.txt文件,
如下所示:
pip freeze > requirements.txt

請(qǐng)注意:每包都獨(dú)占一行,然后是版本號(hào)。
生成的文件默認(rèn)在控制臺(tái)執(zhí)行目錄,也可以自定義目錄,創(chuàng)建文件的時(shí)候增加文件目錄即可
pip freeze > d:/requirements.txt
其中>表示重定向,即 freeze 輸出的內(nèi)容送到requirements.txt文件中。
遷移環(huán)境的時(shí)候,注意打包該文件,然后使用如下命令部署
pip install -r requirements.txt
生成 requirements.txt 文件潛在問(wèn)題
如果生成該文件出現(xiàn)的時(shí)候出現(xiàn) warning,建議使用python -m去執(zhí)行 pip freeze 命令。
如果你創(chuàng)建 Python 程序,或者安裝模塊時(shí),未使用虛擬環(huán)境,那在生成requirements.txt文件的時(shí)候,會(huì)將你本地所有的包都進(jìn)行打包提取,部署前,需要人工進(jìn)行篩選。
語(yǔ)法格式 在requirements.txt文件中,可以只寫(xiě)第三方模塊名稱(chēng),不指定版本號(hào),默認(rèn)安裝最新版本。
如果使用注釋?zhuān)褂?code>#加文字內(nèi)容。
模塊名稱(chēng)與版本號(hào)之間可以使用如下符號(hào):
==:等于>:大于版本>=:大于等于<:小于版本<=:小于等于版本~=:兼容版本,使用任何大于或等于指定版本,但不大于當(dāng)前發(fā)行系列的版本,例如~=1.4.3可以匹配1.4.3到1.4.9,但是不能匹配1.5.0。
在可選范圍內(nèi),安裝最新版本,當(dāng)前最優(yōu)先的依舊是等于的版本號(hào)。
可以使用逗號(hào),分隔兩個(gè)條件,例如下述代碼:
package_name >= 1.0, <=2.0
使用 requirements.txt 文件的好處
- 不需要每個(gè)包都使用 pip 進(jìn)行安裝
- 不需要確定第三方模塊的版本號(hào)
備注
上文提及如果希望 requirements.txt 文件變得精簡(jiǎn),可以使用虛擬環(huán)境實(shí)現(xiàn)隔離,它將用戶(hù)的軟件包和系統(tǒng)的軟件包進(jìn)行區(qū)分,允許我們?yōu)槊總€(gè)單獨(dú)的程序安裝模塊。
常見(jiàn)的虛擬環(huán)境包如下所示:
- virtualenv
- pipenv
但上述介紹存在潛在的問(wèn)題是:
requirements.txt文件只包含一級(jí)依賴(lài)項(xiàng)及其版本,但如果我們的依賴(lài)項(xiàng)自身包含其它依賴(lài)項(xiàng)(二級(jí)以上),這些模塊的版本不一定被鎖定。
此時(shí)就可能會(huì)出現(xiàn)一個(gè)由于版本不對(duì)應(yīng)的問(wèn)題,導(dǎo)致程序崩潰。
當(dāng)然使用下述命令可以解決該問(wèn)題
pip freeze > requirements.txt
但是使用該命令會(huì)產(chǎn)生延伸問(wèn)題,如果你希望刪除一個(gè)模塊,如何判斷其關(guān)聯(lián)依賴(lài)被刪除
在其他編程語(yǔ)言中,會(huì)創(chuàng)建2個(gè)文件,一個(gè)用于定義依賴(lài)關(guān)系,另一個(gè)鎖定所有的次級(jí)依賴(lài)項(xiàng)及其版本。
解決上述問(wèn)題,可以使用pip-tools中的 pip-compile。
使用 pip-compile
該功能模塊在pip-tools中,所以需要先安裝該工具。
python -m pip install pip-tools -i https://pypi.douban.com/simple/
安裝完畢會(huì)在 Python 的 Scripts 文件夾中生成如下 exe 程序。

然后在你需要生成requirements.txt的目錄中建立一個(gè)requirements.in文件,其中可以寫(xiě)入你需要的模塊
requests == 2.27.0
然后執(zhí)行pip-compile命令,輸出內(nèi)容如下所示:

requirements.txt 文件代碼如下:
#
# This file is autogenerated by pip-compile with python 3.8
# To update, run:
#
# pip-compile
#
certifi==2021.10.8
# via requests
charset-normalizer==2.0.12
# via requests
idna==3.3
# via requests
requests==2.27.0
# via -r requirements.in
urllib3==1.26.9
# via requests到此這篇關(guān)于python 中的requirements.txt 文件的使用詳情的文章就介紹到這了,更多相關(guān)python requirements.txt內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python生成requirements.txt的兩種方法
- 詳解python中requirements.txt的一切
- python導(dǎo)出requirements.txt的幾種方法總結(jié)
- python生成requirements.txt文件的兩種方法
- Python pip通過(guò)requirements.txt 文件安裝依賴(lài)
- Python如何生成requirements.txt
- python項(xiàng)目下生成requirements.txt方法
- Python?requirements.txt的具體使用
- python生成requirements.txt文件的推薦方法
- python項(xiàng)目中requirements.txt的用法實(shí)例教程
- Python requirements.txt使用小結(jié)
相關(guān)文章
基于Python開(kāi)發(fā)Windows自動(dòng)更新控制工具
在當(dāng)今數(shù)字化時(shí)代,操作系統(tǒng)更新已成為計(jì)算機(jī)維護(hù)的重要組成部分,本文介紹一款基于Python和PyQt5的Windows自動(dòng)更新控制工具,有需要的可以了解下2025-09-09
python實(shí)現(xiàn)簡(jiǎn)單聊天室功能 可以私聊
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單聊天室功能,可以進(jìn)行私聊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
Scrapy框架爬取西刺代理網(wǎng)免費(fèi)高匿代理的實(shí)現(xiàn)代碼
今天小編就為大家分享一篇關(guān)于Scrapy框架爬取西刺代理網(wǎng)免費(fèi)高匿代理的實(shí)現(xiàn)代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02
使用Python?Seaborn創(chuàng)建熱力圖的制作指南
熱力圖作為一種直觀(guān)的數(shù)據(jù)可視化工具,通過(guò)顏色深淺和漸變映射數(shù)據(jù)值,廣泛應(yīng)用于數(shù)據(jù)密度分析、趨勢(shì)挖掘和跨維度對(duì)比,本文將結(jié)合Python的seaborn庫(kù),從熱力圖的核心原理到實(shí)際操作案例,逐步講解如何利用熱力圖揭示數(shù)據(jù)背后的隱藏規(guī)律,需要的朋友可以參考下2025-08-08
python實(shí)現(xiàn)網(wǎng)頁(yè)鏈接提取的方法分享
這篇文章主要介紹了python實(shí)現(xiàn)的網(wǎng)頁(yè)鏈接提取的方法,需要的朋友可以參考下2014-02-02
Python實(shí)現(xiàn)的圓形繪制(畫(huà)圓)示例
這篇文章主要介紹了Python實(shí)現(xiàn)的圓形繪制(畫(huà)圓),結(jié)合實(shí)例形式分析了Python基于numpy與matplotlib模塊的數(shù)學(xué)運(yùn)算及圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼
本文以微信好友列表為例給大家學(xué)習(xí)listview的相關(guān)知識(shí),通過(guò)實(shí)例demo給大家詳解qt quick-ListView仿微信好友列表和聊天列表的實(shí)現(xiàn)方法,需要的朋友參考下吧2021-06-06
Vue的el-scrollbar實(shí)現(xiàn)自定義滾動(dòng)
本篇文章給大家分享了Vue的el-scrollbar實(shí)現(xiàn)自定義滾動(dòng)實(shí)現(xiàn)的過(guò)程和實(shí)例代碼,對(duì)此有需要的朋友可以參考下。2018-05-05

