很多Python开源项目在环境搭建教程中都会提供requirements.txt,所以有必要搞清楚这到底有什么作用以及一些细节须知,花几分钟一起看看吧!
requirements.txt中包含项目所需依赖的所有库,如:
library-one==1.0.1library-two==3.1.4library-three==100.1.0
要一键安装txt中所指定的3个库,我们可以运行以下命令:
pip install -r requirements.txt
这将自动安装 requirements.txt 中指定的每行库及相应版本。
假设现在其他人需要运行自己的代码,那么需要确保两者运行环境一致,首先在项目Python环境的终端中运行如下命令:
pip freeze
该命令将在终端中打印出每个安装的每个第三方库以及相应版本,如:
absl-py==1.4.0altair==5.0.1anyio==3.6.2appdirs==1.4.4appnope==0.1.3argon2-cffi==21.3.0
是不是感觉这就是requirements.txt文件中的内容。
现在希望将这些内容写入文本文件中,但又不想手动复制粘贴它,可以使用以下命令将其写入:
pip freeze > requirements.txt
该语句的作用是将pip freeze输出的所有内容写入名为requirements.txt的文本文件中,
这样,requirements.txt文件制作完毕,接下来是一些须知。
当我们使用pip freeze时,每个安装的库都会出现在你的requirements.txt中。
这可能会很输出肥肠多的内容,如果项目只需要几个主要库,但requirements.txt会安装另外100个不必要的库,该怎么办?
使用 Python 虚拟环境!
python -m venv env # create a virtual environment called 'env'
# activating our Python virtual environmentenv/Scripts/activate.bat # Windowssource env/bin/activate # MacOS/Linux
创建新的虚拟环境后,干净又卫生,没有安装任何内容。因此,安装项目所需的主要库后使用pip freeze,最终出现在requirements.txt中的内容将仅包含这些主要内容。
这是一个规范的 requirements.txt:
numpy==1.23.5pandas==1.5.2
将安装具有特定版本的numpy与pandas。
如下是一个没有版本的requirements.txt:
numpypandas
将安装最新版本的numpy与pandas,如果项目中的某些库是没有版本依赖的可以这样做。
pip install -r requirements.txt
实际上,可以将其命名为任何名称,只要它是有效的文本文件名即可,如:
pip install -r a.txt
但不建议这样做。
假设我们有2个requirements.txt文件:
requirements.txtrequirements_windows.txt
我们希望requirements_windows.txt也包含requirements.txt内的内容,可以在requirements_windows.txt中这样写:
library-onelibrary-two-r requirements.txt
本文链接:http://www.28at.com/showinfo-26-20051-0.htmlRequirements.txt你真的清楚吗
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com
下一篇: 十大数据科学Python库,你用过几个?