Python如何快速生成本项目的requeirments.txt实现
作者:宁静与致远 发布时间:2023-07-21 17:02:04
在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
来源:https://blog.csdn.net/qq_42076902/article/details/129417568


猜你喜欢
- 写在前面面试官:除了 HTTP,你还用过什么通信协议?答:Websocket 在数字孪生中的应用随着 数智化 转型的推进,越来越多行业开始加
- 在Centos上部署项目发现一个奇怪的问题,数据库连接一直抛异常。于是花了两个小时搜了各种数据库连接异常导致的原因,最终问题得以解决。同时,
- 散点图什么是散点图?散点图是指在数理统计回归分析中,数据点在直角坐标系平面上的分布图, 散点图表示因变量随自变量而变化的大致趋势,
- 一 基本知识millisecond 毫秒microsecond 微秒 nanosecond 纳秒1秒=1000毫秒 1毫秒=1000微秒 1
- 1. 箭头函数的使用ES6 中新增了使用箭头=>来定义函数表达式的方法。很多情况下,箭头函数和函数表达式创建的函数并无区别,只有写法上
- 1.今天在看JavaScript学习指南的时候做的课后习题,也因此详细的对函数的传入参数进行比较深入的研究.题目如下:函数如何才能修改其作用
- python字典中,值可任意更改;但键是唯一的,不支持直接修改。若真的需要修改字典中的键,可通过几种间接方式实现。新建空白字典。info =
- 单向链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节
- 训练好了model后,可以通过python调用caffe的模型,然后进行模型测试的输出。本次测试主要依靠的模型是在caffe模型里面自带训练
- GOPATH设置go 命令依赖一个重要的环境变量:$GOPATH1(注:这个不是Go安装目录。下面以笔者的工作目录为说明,请替换自己机器上的
- 执行以下代码,发现无法跳出for循环:func SelectTest() { i := 0 for { select { case <
- 想要使用xpath来解析html内容, PHP自带两个对象DOMDocument,DOMXpath,其中初始化 loadHtml一般都会报很
- 一、MySQL优点:体积小、速度快、总体拥有成本低,开源;支持多种操作系统;是开源数据库,提供的接口支持多种语言连接操作 ;MySQL的核心
- 前面文章分别简单介绍了线性回归,逻辑回归,贝叶斯分类,并且用python简单实现。这篇文章介绍更简单的 knn, k-近邻算法(kNN,k-
- 同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月My
- 最近在使用linux上进行本地登录时,发现既然无法正常登录 , 报如下错误信息:[root@xxxx ~]# mysql -h localh
- 有的时候我们在获取到目标电脑时候如果对方电脑又python 编译环境时可以利用python 反弹shell主要用到python os库和so
- 读取图片为矩阵import matplotlibim = matplotlib.image.imread('0_0.jpg'
- 在 golang 中不能直接用 len 函数来统计字符串长度,查看了下源码发现字符串是以 UTF-8 为格式存储的,说明 len 函数是取得
- 1、单行(大文件处理):my $oneline = <$FL> 或while($line=<H>){ }2、读取全部