網(wǎng)站首頁 編程語言 正文
一、什么是requirements.txt文件及作用
requirements.txt 文件是項目的依賴包及其對應版本號的信息列表,即記載你這個項目所安裝的依賴。
作用:用來重新構建項目或者記錄項目所需要的運行環(huán)境依賴,你從 GitHub上下載了一個 Python 項目,然后要運行這個項目,你需要安裝和項目一樣的依賴,這個時候 requirements.txt 文件就起作用,運行命令 pip install -r requirements.txt 來安裝該項目所依賴的所有包(前提是這個項目有requirements.txt 文件)。
二、怎么生成requirements.txt 文件
有兩種方式:Python里的pip freeze和第三方庫pipreqs
1、pip freeze方法(不推薦)
如果你在寫的項目是使用虛擬環(huán)境寫的,就可以使用這個方法,因為這個方法會將你整個Python環(huán)境的包全把生成出來,如果你不是使用虛擬環(huán)境,使用這個方法,你會發(fā)現(xiàn)生成的文件,里面有很多你并不需要的包,這樣嗎使用安裝的依賴包的時候會有很多不需要的包
終端使用命令:
pip freeze > requirements.txt
2、pipreqs第三方庫(推薦)
使用 pipreqs 可以自動檢索到當前項目下的所有組件及其版本,并生成 requirements.txt 文件,極大方便了項目遷移和部署的包管理。相比直接用pip freeze 命令,能直接隔離其它項目的包生成。
使用步驟:
1、先安裝pipreqs庫
pip install pipreqs
2、在當前目錄使用生成
pipreqs ./ --encoding=utf8 --force
--encoding=utf8 :為使用utf8編碼
--force :強制執(zhí)行,當 生成目錄下的requirements.txt存在時覆蓋?
. /: 在哪個文件生成requirements.txt 文件
補充:setup.py 與 requirements.txt 區(qū)別
setup.py 這個文件是用來管理模塊的,你可以將你的項目打包為模塊上傳到 pypi 中,也同樣能將項目作為模塊放入python 的系統(tǒng)加載模塊目錄下。
requiremens.txt 這個文件是列舉你這個項目引用了哪些非本項目的依賴的,除此之外,沒有其他作用。
因此,可以看出這兩個項目其實并沒有沖突關系,而且有很大共存的必要。
假如你的項目需要保存為系統(tǒng)模塊,或者可安裝為系統(tǒng)命令的 setup.py 就必不可少了
假如你的項目是可以直接運行的,那么 requirements.txt 也是必不可少。
如果你兩種功能都需要,那么就兩個文件都不能少。
有這兩種功能都需要的么?
必須有啊,而且還很多,例如 Flask,他就支持兩種方式:
以系統(tǒng)命令的方式啟動,在 Flask 0.11.1 中新加入了一個 Click 包,他可以讓你 setup 之后以命令的方式運行
直接運行,傳統(tǒng)的 Flask 啟動方式一般就是 app.run() 或者 python manage.py runserver
總結
原文鏈接:https://blog.csdn.net/weixin_57397476/article/details/124025993
相關推薦
- 2022-09-23 基于numpy實現(xiàn)邏輯回歸_python
- 2022-05-03 C#設計模式之簡單工廠模式_C#教程
- 2022-04-17 aspx頁面報“XPathResult未定義”的解決方法
- 2023-01-20 gazebo里通過節(jié)點發(fā)布topic讓關節(jié)轉(zhuǎn)動實現(xiàn)詳解_C 語言
- 2022-12-12 Flutter手機權限檢查與申請實現(xiàn)方法詳解_Android
- 2022-04-11 python中pip安裝、升級以及升級固定的包_python
- 2022-07-31 C語言數(shù)據(jù)結構算法基礎之循環(huán)隊列示例_C 語言
- 2022-05-06 嵌入式C語言輕量級程序架構內(nèi)核編寫_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支