使用【Python】快速生成本项目的requeirments.txt

news2024/12/24 3:29:18

在Python项目中,我们通常需要使用许多第三方库来提供额外的功能和工具。但是,直接将这些库上传到Git仓库并不是一种好的做法,因为这会使得代码库变得过于臃肿,并且很难管理。此外,有时候在部署应用程序时也需要安装特定版本的依赖项。

这时候,就可以使用requirements.txt文件来管理项目所需的依赖项。该文件列出了项目所需的所有依赖项及其版本号,使得其他人可以轻松地安装和运行该项目所需的所有依赖项。使用pip命令读取该文件,可以自动下载并安装所有列出的依赖项,这大大简化了项目启动/部署的流程。

因此,生成requirements.txt文件对于管理Python项目的依赖项非常重要,它能够确保项目的可重复性、可移植性和可维护性。
在这里插入图片描述

1.使用pipreqs生成requeirments.txt

在项目根目录下打开终端,运行以下命令安装pipreqs:

pip install pipreqs

运行以下命令生成requirements.txt文件:

pipreqs . --encoding=utf8 --force

其中,.表示当前目录,–encoding=utf8指定编码为UTF-8,–force选项强制覆盖已存在的requirements.txt文件。

等待执行完毕,即可在项目根目录下看到生成的requirements.txt文件。
在这里插入图片描述

2.使用pip

要使用pip生成当前Python项目的requirements.txt文件,请按照以下步骤操作:

1.确保你已经安装了pip和虚拟环境。

2.在虚拟环境中打开终端,并进入到项目的根目录下。

3.运行以下命令,生成包含所有依赖项的requirements.txt文件:

pip freeze > requirements.txt

执行完毕后,你可以在项目的根目录下看到一个名为requirements.txt的文本文件,其中包含了所有依赖项及其版本号。
在这里插入图片描述

需要注意的是,pip freeze命令会将所有安装的包及其版本信息输出到控制台。通过重定向符号>将输出结果写入到文件中,就能够生成requirements.txt文件。但是,该文件中可能包含一些不必要的依赖项,如系统自带的库、测试工具等。因此,在使用生成的requirements.txt文件时,建议手动检查并删除不必要的依赖项,以减小项目体积。
以下是生成的requirements.txt文件,可以看到,有好多不必要的依赖项被生成

absl-py==1.0.0
addict==2.4.0
aiohttp==3.7.4.post0
alembic==1.8.1
argon2-cffi @ file:///opt/conda/conda-bld/argon2-cffi_1645000214183/work
argon2-cffi-bindings @ file:///C:/ci/argon2-cffi-bindings_1644569848815/work
astunparse==1.6.3
async-timeout==3.0.1
attrs @ file:///opt/conda/conda-bld/attrs_1642510447205/work
backcall @ file:///home/ktietz/src/ci/backcall_1611930011877/work
beautifulsoup4 @ file:///tmp/build/80754af9/beautifulsoup4_1631874778482/work
bilibili-api==5.1.2
bleach @ file:///opt/conda/conda-bld/bleach_1641577558959/work
blinker==1.5
cachetools==5.0.0
certifi @ file:///C:/b/abs_85o_6fm0se/croot/certifi_1671487778835/work/certifi
cffi @ file:///C:/ci_310/cffi_1642682485096/work
chardet==4.0.0
charset-normalizer==2.0.12
click @ file:///C:/ci/click_1646038601470/work
cloudpickle @ file:///tmp/build/80754af9/cloudpickle_1632508026186/work
colorama @ file:///tmp/build/80754af9/colorama_1607707115595/work
cryptography @ file:///C:/ci/cryptography_1652101770956/work
cycler==0.11.0
cytoolz==0.11.0
dask==1.1.4
debugpy @ file:///C:/ci/debugpy_1637091911212/work
decorator @ file:///opt/conda/conda-bld/decorator_1643638310831/work
defusedxml @ file:///tmp/build/80754af9/defusedxml_1615228127516/work
dnspython==2.3.0
docopt==0.6.2
einops==0.4.1
email-validator==1.3.1
entrypoints==0.3
fastjsonschema @ file:///tmp/build/80754af9/python-fastjsonschema_1620414857593/work/dist
Flask==2.2.3
Flask-Email==1.4.4
Flask-Mail==0.9.1
Flask-Migrate==3.1.0
Flask-Script==2.0.6
Flask-SQLAlchemy @ file:///tmp/build/80754af9/flask-sqlalchemy_1616180561581/work
Flask-WTF==1.1.1
flatbuffers==23.1.21
fonttools==4.30.0
fvcore==0.1.5.post20220305
gast==0.4.0
google-auth==2.6.5
google-auth-oauthlib==0.4.6
google-pasta==0.2.0
greenlet @ file:///C:/ci/greenlet_1628888257991/work
grpcio==1.45.0
grpcio-tools==1.45.0
h5py @ file:///C:/ci/h5py_1659089886851/work
idna==3.3
imagecodecs @ file:///C:/ci/imagecodecs_1635529223557/work
imageio @ file:///tmp/build/80754af9/imageio_1617700267927/work
importlib-metadata @ file:///C:/ci/importlib-metadata_1648562631189/work
importlib-resources==5.9.0
iopath==0.1.9
ipykernel @ file:///C:/ci/ipykernel_1647000985174/work/dist/ipykernel-6.9.1-py3-none-any.whl
ipython @ file:///C:/ci/ipython_1643800131373/work
ipython-genutils @ file:///tmp/build/80754af9/ipython_genutils_1606773439826/work
ipywidgets @ file:///tmp/build/80754af9/ipywidgets_1634143127070/work
itsdangerous @ file:///tmp/build/80754af9/itsdangerous_1621432558163/work
jedi @ file:///C:/ci/jedi_1644297241925/work
Jinja2 @ file:///C:/b/abs_7cdis66kl9/croot/jinja2_1666908141852/work
joblib @ file:///C:/b/abs_e60_bwl1v6/croot/joblib_1666298845728/work
jsonschema @ file:///Users/ktietz/demo/mc3/conda-bld/jsonschema_1630511932244/work
jupyter==1.0.0
jupyter-client @ file:///opt/conda/conda-bld/jupyter_client_1643638337975/work
jupyter-console @ file:///opt/conda/conda-bld/jupyter_console_1647002188872/work
jupyter-core @ file:///C:/ci/jupyter_core_1646976467633/work
jupyterlab-pygments @ file:///tmp/build/80754af9/jupyterlab_pygments_1601490720602/work
jupyterlab-widgets @ file:///tmp/build/80754af9/jupyterlab_widgets_1609884341231/work
keras==2.11.0
kiwisolver @ file:///C:/ci/kiwisolver_1653274189334/work
labelme==3.16.7
libclang==15.0.6.1
loguru @ file:///C:/ci/loguru_1643616607274/work
lxml==4.6.5
Mako==1.2.2
Markdown==3.3.6
MarkupSafe @ file:///C:/ci/markupsafe_1654508076077/work
matplotlib==3.5.1
matplotlib-inline @ file:///tmp/build/80754af9/matplotlib-inline_1628242447089/work
mistune @ file:///C:/ci/mistune_1594373272338/work
mkl-fft==1.3.1
mkl-random @ file:///C:/ci/mkl_random_1626186163140/work
mkl-service==2.4.0
mmcv==1.6.2
multidict==6.0.2
nbclient @ file:///tmp/build/80754af9/nbclient_1645431659072/work
nbconvert @ file:///C:/ci/nbconvert_1649759177374/work
nbformat @ file:///C:/ci/nbformat_1649845122517/work
nest-asyncio @ file:///C:/ci/nest-asyncio_1649848126026/work
networkx==2.2
notebook @ file:///C:/ci/notebook_1645002740769/work
numpy @ file:///C:/ci/numpy_and_numpy_base_1649782933444/work
oauthlib==3.2.0
opencv-python==4.5.5.64
openslide-python==1.2.0
opt-einsum==3.3.0
packaging @ file:///tmp/build/80754af9/packaging_1637314298585/work
pandas==1.3.5
pandocfilters @ file:///opt/conda/conda-bld/pandocfilters_1643405455980/work
parso @ file:///opt/conda/conda-bld/parso_1641458642106/work
pickleshare @ file:///tmp/build/80754af9/pickleshare_1606932040724/work
Pillow==9.0.1
pipreqs==0.4.11
portalocker==2.4.0
prettytable==3.3.0
prometheus-client @ file:///opt/conda/conda-bld/prometheus_client_1643788673601/work
prompt-toolkit @ file:///tmp/build/80754af9/prompt-toolkit_1633440160888/work
protobuf==3.19.6
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser @ file:///tmp/build/80754af9/pycparser_1636541352034/work
pyecharts==1.9.1
pygame==2.2.0
Pygments @ file:///opt/conda/conda-bld/pygments_1644249106324/work
PyMySQL @ file:///C:/ci/pymysql_1610464946597/work
pyparsing==3.0.7
PyQt5-Qt5==5.15.2
PyQt5-sip==12.9.1
pyrsistent @ file:///C:/ci/pyrsistent_1636093257833/work
pytesseract==0.3.10
python-dateutil @ file:///tmp/build/80754af9/python-dateutil_1626374649649/work
pytz @ file:///C:/Windows/TEMP/abs_90eacd4e-8eff-491e-b26e-f707eba2cbe1ujvbhqz1/croots/recipe/pytz_1654762631027/work
PyWavelets @ file:///C:/ci/pywavelets_1648728036674/work
pywin32==302
pywinpty @ file:///C:/ci_310/pywinpty_1644230983541/work/target/wheels/pywinpty-2.0.2-cp37-none-win_amd64.whl
PyYAML==6.0
pyzmq @ file:///C:/ci/pyzmq_1638435182681/work
qtconsole @ file:///opt/conda/conda-bld/qtconsole_1649078897110/work
QtPy @ file:///opt/conda/conda-bld/qtpy_1649073884068/work
regex==2022.10.31
requests==2.27.1
requests-oauthlib==1.3.1
rsa==4.8
scikit-image @ file:///C:/ci/scikit-image_1648196140109/work
scikit-learn @ file:///C:/ci/scikit-learn_1642599122269/work
scipy @ file:///C:/ci/scipy_1641555141383/work
seaborn==0.11.2
Send2Trash @ file:///tmp/build/80754af9/send2trash_1632406701022/work
sip==4.19.13
six @ file:///tmp/build/80754af9/six_1644875935023/work
soupsieve @ file:///tmp/build/80754af9/soupsieve_1636706018808/work
SQLAlchemy @ file:///C:/Windows/Temp/abs_f8661157-660b-49bb-a790-69ab9f3b8f7c8a8s2psb/croots/recipe/sqlalchemy_1657867864564/work
tabulate==0.8.9
tensorboard==2.11.2
tensorboard-data-server==0.6.1
tensorboard-plugin-wit==1.8.1
tensorflow==2.11.0
tensorflow-estimator==2.11.0
tensorflow-intel==2.11.0
tensorflow-io-gcs-filesystem==0.31.0
termcolor==1.1.0
terminado @ file:///C:/ci/terminado_1644322782754/work
testpath @ file:///tmp/build/80754af9/testpath_1624638946665/work
thop==0.0.31.post2005241907
threadpoolctl @ file:///Users/ktietz/demo/mc3/conda-bld/threadpoolctl_1629802263681/work
tifffile @ file:///tmp/build/80754af9/tifffile_1627275862826/work
timm==0.6.7
toolz @ file:///tmp/build/80754af9/toolz_1636545406491/work
torch==1.9.1+cu102
torchaudio==0.9.1
torchmetrics==0.9.3
torchstat==0.0.7
torchvision==0.10.1+cu102
tornado @ file:///C:/ci/tornado_1606935947090/work
tqdm==4.63.0
traitlets @ file:///tmp/build/80754af9/traitlets_1636710298902/work
typing_extensions @ file:///opt/conda/conda-bld/typing_extensions_1647553014482/work
urllib3==1.26.9
wcwidth @ file:///Users/ktietz/demo/mc3/conda-bld/wcwidth_1629357192024/work
webencodings==0.5.1
Werkzeug==2.2.3
widgetsnbextension @ file:///C:/ci/widgetsnbextension_1645009553925/work
win32-setctime @ file:///home/tkoch/Workspace/win32_setctime/win32_setctime_1643630045199/work
wincertstore==0.2
wrapt==1.15.0
WTForms==3.0.1
xlwt==1.3.0
yacs==0.1.8
yapf==0.32.0
yarg==0.1.9
yarl==1.7.2
zipp @ file:///C:/ci/zipp_1652274072582/work

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/403996.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

等价类划分法

等价类划分法 测试一个两位数的加法计算器 测试需求: 测试两个参数的值相加后的结果是否正确 其中:输入的数值在-99到99之间,大于99或小于-99的输入应被拒绝,并显示错误信息 根据测试需求,我们开始测试 分别给第一个…

因果图判定表法

因果图&判定表法 在了解了等价类和边界值比较适宜搭档的测试用例方法之后 接下来我们来了解另外一队就是因果图和判定表 因果图会产生判定表法 因果图法 等价类划分法和边界值分析方法都是着重考虑输入条件而不考虑输入条件的各种组合、输入条件之间的相互制约关系。例…

每天5分钟玩转机器学习算法:逆向概率的问题是什么?贝叶斯公式是如何解决的?

本文重点 前面我们已经知道了贝叶斯公式,以及贝叶斯公式在机器学习中的应用,那么贝叶斯公式究竟解决了一个什么样的问题呢?贝叶斯是为了解决逆向概率的问题。 正向的概率和逆向的概率 正向概率:假设袋子里面有N个白球,有M个黑球,你伸手一摸,那么问题就是你摸出黑球的概…

金三银四、金九银十 面试宝典 MySQL面试题 超级无敌全的面试题汇总(超万字的面试题,让你的MySQL无可挑剔)

MySQL数据库 - 面试宝典 又到了 金三银四、金九银十 的时候了,是时候收藏一波面试题了,面试题可以不学,但不能没有!🥁🥁🥁 一个合格的 计算机打工人 ,收藏夹里必须有一份 MySQL 八…

snmputilg和snmputil的下载 / Win10下SNMP服务的安装和配置

文章目录1. snmputilg和snmputil的下载2. 在Windows上安装SNMP服务3.在Windows上进行SNMP服务的相关配置4.测试是否配置成功1. snmputilg和snmputil的下载 snmputilg和snmputil的下载 该工具是学习和模拟SNMP协议的十分常用的工具。 2. 在Windows上安装SNMP服务 右键开始图标—…

【JVM篇2】垃圾回收机制

目录 一、GC的作用 申请变量的时机&销毁变量的时机 内存泄漏 垃圾回收的劣势 二、GC的工作过程 回收垃圾的过程 第一阶段:找垃圾/判定垃圾 方案1:基于引用计数(非Java语言) 引用计数方式的缺陷 方案2:可达性分析(基于Java语言) …

蓝桥杯嵌入式ADC与DAC(都不需要中断)

目录 1.原理图 (1)ADC的原理图 (2)DAC的原理图 2.STM32CubeMX的配置 (1)ADC的配置 (2)DAC配置 3.代码部分 (1)ADC代码 (2)DA…

【C语言深度剖析】关键字(全)

文章目录一.存储类型关键字前言补充1:内存思考:补充2:变量与内存的关系补充3:变量的分类补充4:存储类补充5:删除数据是怎么删除的?1.auto2.register3.static4.extern基本用法:基本功能5.typedef…

「计算机组成原理」数据的表示和运算(二)

文章目录五、奇偶校验码六、算术逻辑单元ALU6.1 电路的基本原理6.2 加法器的设计6.2.1 一位全加器6.2.2 串行加法器6.2.3 串行进位的并行加法器6.2.4 并行进位的并行加法器七、补码加减运算器八、标志位的生成九、定点数的移位运算9.1 算数移位9.2 逻辑移位9.3 循环移位五、奇偶…

Matlab生成sinc信号

Matlab生成sinc信号 在Matlab中生成sinc信号非常容易。首先,我们需要了解什么是sinc波形。 sinc波形是一种理想的信号,它在时域上是一个宽度为无穷的矩形函数,而在频域上则是一个平的频谱。它的公式为: sinc⁡(x)sin⁡(πx)πx\…

YOLOv5源码逐行超详细注释与解读(3)——训练部分train.py

前言 本篇文章主要是对YOLOv5项目的训练部分train.py。通常这个文件主要是用来读取用户自己的数据集,加载模型并训练。 文章代码逐行手打注释,每个模块都有对应讲解,一文帮你梳理整个代码逻辑! 友情提示:全文近5万字…

学习电气自动化PLC编程最基础的十大知识点详解

这篇文章其实是学习PLC自动化过程中必须要理解的基础问题,不管是西门子PLC还是三菱PLC,抑或欧姆龙PLC,以及国产品牌的PLC,这些问题都必须理解透,才能更好的开始自动化编程。不然指令学完了梯形图的逻辑可能还是搞不懂&…

Datatables展示数据(表格合并、日期计算、异步加载数据、分页显示、筛选过滤)

系列文章目录 datatable 自定义筛选按钮的解决方案Echarts实战案例代码(21):front-endPage的CJJTable前端分页插件ajax分页异步加载数据的解决方案 文章目录系列文章目录前言一、html容器构建1.操作按钮2.表格构建二、时间日期计算三、dataTables属性配置1.调用2.过…

java多线程与线程池-03线程池与阻塞队列

第6章 线程池与阻塞队列 6.1 Queue接口 队列是一种特殊的集合,一般队列都具有先进先出(FIFO)的特性(并不绝对要求)。优先级队列(PriorityQueue)按照元素的比较方法排序,其他队列基本采用自然序排队。 队列Queue接口实现了Collection接口,offer()方法负责把元素插入…

带头双向循环链表及链表总结

1、链表种类大全 1、链表严格来说可能用2*2*28种结构,从是否带头,是否循环,是否双向三个角度区分。 2、无头单向循环链表一般不会在实际运用中直接存储数据,而会作为某些更复杂结构的一个子结构,毕竟它只在头插、头删…

【数据结构之二叉树】——二叉树的概念及结构,特殊的二叉树和二叉树性质

文章目录一、二叉树的概念及结构1.概念2.现实中的二叉树3. 特殊的二叉树:3.二叉树的性质二、二叉树练习题总结一、二叉树的概念及结构 1.概念 一棵二叉树是结点的一个有限集合,该集合: 或者为空由一个根节点加上两棵别称为左子树和右子树的二叉树组成…

线性表的链式表示

文章目录1.单链表1.1单链表的表示1.1.1构建 带头结点的单链表1.2基本操作1.2.1 头插法1.2.2 尾插法1.2.3 按序号查找结点1.2.4 按值查找表结点1.2.5 插入结点操作扩展:前插操作1.2.6 删除结点操作扩展:删除结点*p1.2.7 求表长操作2.双链表2.1 双链表的表…

JVM相关知识

JVM类加载过程类什么时候被加载什么情况下会发生栈内存溢出JVM内存模型常量池回收方法区垃圾回收流程圾收集算法分代收集理论标记-清除算法标记-复制算法标记-整理算法类加载过程 加载–验证–准备–解析–初始化–使用–卸载 ​ 加载:通过全类名获取类的二进制流…

【C++】非类型的模板参数,特化

目录 1.类型模板参数和非类型模板参数 2.特化 3. 模板的分离编译 4.模板的优缺点 1.类型模板参数和非类型模板参数 之前写模板传的都是类型——类型模板参数 现在想定义两个静态数组,数组长度不同,就可以用模板参数传数值而不是传类型 非类型模板…

Docker与微服务实战2022

基础篇(零基小白)1.Docker简介1.1 是什么问题:为什么会有docker出现?您要如何确保应用能够在这些环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复? 答案就…