在Python开发中,尤其是使用开源项目时,我们常常需要管理大量的依赖库。
requirements.txt
和environment.yml
是两种常用的依赖管理文件,它们可以帮助我们快速搭建项目所需的运行环境。本文将详细介绍这两种文件的使用方法和区别。(写这篇博客的初衷就是我在GitHub上克隆的开源项目下经常能看到这两个文件,但是一直不知道怎么去用,学懂之后和大家分享一下~~)
🎯 1、requirements.txt
requirements.txt
是一个用于记录项目依赖的文本文件,通常由 pip
命令生成和使用。
生成命令
pip freeze > requirements.txt
使用命令
pip install -r requirements.txt
通过命令可以安装 requirements.txt
中列出的所有依赖到环境中,就不用一个个下载 了,一般开源的项目都会有。
内容格式
gym>=0.14.0
jupyter>=1.0.0
numpy>=1.16.4
pandas>=0.24.2
scipy>=1.3.0
scikit-learn>=0.21.2
matplotlib>=3.1.0
h5py>=2.9.0
pygame>=1.9.6
tqdm>=4.32.1
使用
==
表示指定特定版本的包。使用
>=
表示指定最低版本的包。
🎯2、environment.yml
environment.yml
是一个用于记录项目依赖和环境配置的YAML文件,通常由 conda
命令生成和使用。
生成命令
conda env export > environment.yml
有些时候你看到的不是yml后缀,而是yaml后缀,
yml
和yaml
是YAML文件的两种扩展名,它们没有本质区别。yaml
是更标准的扩展名,但yml
也广泛使用。
使用命令
conda env create -f environment.yml
内容格式
name: my_env_name
channels:
- defaults
dependencies:
- python=3.8
- numpy>=1.16.4
- pandas>=0.24.2
- scipy>=1.3.0
- pip
- pip:
- gym>=0.14.0
- jupyter>=1.0.0
- matplotlib>=3.1.0
- h5py>=2.9.0
- pygame>=1.9.6
- tqdm>=4.32.1
name
指定了虚拟环境的名称。
channels
指定了包的来源。
dependencies
列出了需要安装的包,包括通过conda
安装的包和通过pip
安装的包。
🎯3、常见问题
①pip
和 conda
的兼容性问题
即在yml文件中添加如下行:
- pip
dependencies:
- pip
- pip:
- package_name
②虚拟环境名称冲突
🎯ref 博客
Python库安装之requiremoents.txt, environment.yml_python requirements-CSDN博客