網站首頁 編程語言 正文
一、什么是requirements.txt文件及作用
requirements.txt 文件是項目的依賴包及其對應版本號的信息列表,即記載你這個項目所安裝的依賴。
作用:用來重新構建項目或者記錄項目所需要的運行環境依賴,你從 GitHub上下載了一個 Python 項目,然后要運行這個項目,你需要安裝和項目一樣的依賴,這個時候 requirements.txt 文件就起作用,運行命令 pip install -r requirements.txt 來安裝該項目所依賴的所有包(前提是這個項目有requirements.txt 文件)。
二、怎么生成requirements.txt 文件
有兩種方式:Python里的pip freeze和第三方庫pipreqs
1、pip freeze方法(不推薦)
如果你在寫的項目是使用虛擬環境寫的,就可以使用這個方法,因為這個方法會將你整個Python環境的包全把生成出來,如果你不是使用虛擬環境,使用這個方法,你會發現生成的文件,里面有很多你并不需要的包,這樣嗎使用安裝的依賴包的時候會有很多不需要的包
終端使用命令:
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 :強制執行,當 生成目錄下的requirements.txt存在時覆蓋?
. /: 在哪個文件生成requirements.txt 文件
補充:setup.py 與 requirements.txt 區別
setup.py 這個文件是用來管理模塊的,你可以將你的項目打包為模塊上傳到 pypi 中,也同樣能將項目作為模塊放入python 的系統加載模塊目錄下。
requiremens.txt 這個文件是列舉你這個項目引用了哪些非本項目的依賴的,除此之外,沒有其他作用。
因此,可以看出這兩個項目其實并沒有沖突關系,而且有很大共存的必要。
假如你的項目需要保存為系統模塊,或者可安裝為系統命令的 setup.py 就必不可少了
假如你的項目是可以直接運行的,那么 requirements.txt 也是必不可少。
如果你兩種功能都需要,那么就兩個文件都不能少。
有這兩種功能都需要的么?
必須有啊,而且還很多,例如 Flask,他就支持兩種方式:
以系統命令的方式啟動,在 Flask 0.11.1 中新加入了一個 Click 包,他可以讓你 setup 之后以命令的方式運行
直接運行,傳統的 Flask 啟動方式一般就是 app.run() 或者 python manage.py runserver
總結
原文鏈接:https://blog.csdn.net/weixin_57397476/article/details/124025993
相關推薦
- 2022-11-25 Linux?apache實現https的配置方法_Linux
- 2022-08-10 C++?和?C#?中的?lambda的方法技巧_C 語言
- 2022-05-11 C++類繼承時的構造函數_C 語言
- 2022-05-20 C#隊列的簡單使用_C#教程
- 2022-04-18 pyinstaller打包后,配置文件無法正常讀取的解決_python
- 2022-06-15 C++?詳細講解stack與queue的模擬實現_C 語言
- 2022-04-17 uniapp文本支持換行,后端返回一串文本
- 2023-11-15 linux查看目錄的大小,指定目錄查看所占的空間大小
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支