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

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

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


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


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



1.使用pipreqs生成requeirments.txt


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

pip install pipreqs



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

pipreqs . --encoding=utf8 --force
• 1

其中,.表示当前目录,–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
相关文章
|
1月前
|
监控 测试技术 Python
颠覆传统!Python闭包与装饰器的高级实战技巧,让你的项目效率翻倍
【7月更文挑战第7天】Python的闭包与装饰器是强大的工具。闭包是能记住外部作用域变量的内部函数,常用于动态函数创建和工厂模式。例如,`make_power`返回含外部变量`n`的`power`闭包。装饰器则允许在不修改函数代码的情况下添加新功能,如日志或性能监控。`my_decorator`函数接收一个函数并返回包装后的函数,添加了前后处理逻辑。掌握这两者,可提升编程效率和灵活性。
30 3
|
5天前
|
运维 Devops 测试技术
一个人活成一个团队:python的django项目devops实战
DevOps通过自动化的流程,使得构建、测试、发布软件能够更加地快捷、频繁和可靠。本文通过一个python的django个人博客应用进行了DevOps的实战,通过DevOps拉通开发和运维,通过应用云效的DevOps平台实现自动化“软件交付”的流程,使得构建、测试、发布软件能够更加地快捷、频繁和可靠,提交研发交付效率。作为个人项目也是可以应用devops提高效率。
17 3
|
12天前
|
数据采集 JSON 数据可视化
基于Python的51job招聘数据采集与可视化项目实践
本文介绍了一个基于Python的51job招聘数据采集与可视化项目,该项目通过自动化手段获取大量招聘信息,并运用数据分析和可视化工具对就业市场进行深度分析,旨在为求职者和企业提供数据支持和决策依据。
|
18天前
|
开发框架 JSON API
Python中FastAPI项目使用 Annotated的参数设计
Python中FastAPI项目使用 Annotated的参数设计
|
14天前
|
机器学习/深度学习 数据可视化 数据处理
Python vs R:机器学习项目中的实用性与生态系统比较
【8月更文第6天】Python 和 R 是数据科学和机器学习领域中最受欢迎的两种编程语言。两者都有各自的优点和适用场景,选择哪种语言取决于项目的具体需求、团队的技能水平以及个人偏好。本文将从实用性和生态系统两个方面进行比较,并提供代码示例来展示这两种语言在典型机器学习任务中的应用。
38 1
|
1月前
|
分布式计算 大数据 Java
如何使用Python的pyodps库来进行跨项目空间重命名表名?
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
37 12
|
5天前
|
Java API Python
Python 搭建 FastAPI 项目
Python 搭建 FastAPI 项目
12 0
|
2月前
|
安全 开发者 索引
将python项目从动态迁移到静态
【6月更文挑战第29天】本文介绍**mypy 是 Python 的静态类型检查器,它结合动态和静态类型的优势,提供编译时类型检查而无运行时开销。 文中在类的示例中,展示了如何为方法添加类型注解,以增强类的安全性。泛型允许创建可复用的类型安全容器,如 Stack 类,它可以用
35 4
将python项目从动态迁移到静态
|
1月前
|
运维 数据安全/隐私保护 Python
Python基于telnetlib模块实现交换机全面巡检自动化运维项目
Python基于telnetlib模块实现交换机全面巡检自动化运维项目
72 14
|
1月前
|
前端开发 Python
前后端分离的进化:Python Web项目中的WebSocket实时通信解决方案
【7月更文挑战第18天】在Python的Flask框架中,结合Flask-SocketIO库可轻松实现WebSocket实时通信,促进前后端分离项目中的高效交互。示例展示了一个简单的聊天应用:Flask路由渲染HTML,客户端通过Socket.IO库连接服务器,发送消息并监听广播。此方法支持多种实时通信协议,适应不同环境,提供流畅的实时体验。
52 3