使用【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
相关文章
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
Python 数据分析:从零开始构建你的数据科学项目
【10月更文挑战第9天】Python 数据分析:从零开始构建你的数据科学项目
58 2
|
3月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
101 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
27天前
|
弹性计算 Linux iOS开发
Python 虚拟环境全解:轻松管理项目依赖
本文详细介绍了 Python 虚拟环境的概念、创建和使用方法,包括 `virtualenv` 和 `venv` 的使用,以及最佳实践和注意事项。通过虚拟环境,你可以轻松管理不同项目的依赖关系,避免版本冲突,提升开发效率。
|
3月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
136 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
2月前
|
JSON 搜索推荐 API
Python的web框架有哪些?小项目比较推荐哪个?
【10月更文挑战第15天】Python的web框架有哪些?小项目比较推荐哪个?
62 1
|
2月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
63 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
3月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
110 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
3月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
98 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
2月前
|
存储 开发工具 Python
【Python项目】外星人入侵项目笔记
【Python项目】外星人入侵项目笔记
39 3
|
2月前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
在Web开发领域,AJAX与Fetch API是提升交互体验的关键技术。AJAX(Asynchronous JavaScript and XML)作为异步通信的先驱,通过XMLHttpRequest对象实现了局部页面更新,提升了应用流畅度。Fetch API则以更现代、简洁的方式处理HTTP请求,基于Promises提供了丰富的功能。当与Python Web框架(如Django、Flask)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
51 2