2024年 导出环境依赖requirements.txt

2024年 导出环境依赖

一、前言

有时候需要导出环境依赖,遂记录一下这个短短的步骤

二、具体步骤

1、使用pip进行安装和管理环境

  1. 安装导出依赖的库pipreqs
pip install pipreqs
  1. 将环境依赖项导出到当前目录的requirements.txt文件,编码格式用utf-8
pipreqs ./ --encoding=utf8

在这里插入图片描述

  1. 结果如下
    在这里插入图片描述

2、使用pipenv安装和管理环境

在使用vercel的时候,pip不支持限定python版本,这时候就需要用到pipenv进行管理了

  1. 安装导出依赖的库pipenv
pip install pipenv
  1. 导出依赖pipenv lock
    在这里插入图片描述

  2. 依据pipfile进行安装环境
    在修改了 Pipfile 后,使用 Pipenv 更新项目的依赖。可以通过以下命令来安装 Pipfile 中指定的依赖:

pipenv install

在这里插入图片描述
安装完这个虚拟环境后运行 pipenv shell 激活环境,然后再在这个环境下运行
在这里插入图片描述

三、requirements.txt 和pipfile管理关系差异

Pipfilerequirements.txt 都是 Python 项目中用于管理依赖的文件,但它们之间存在一些关键区别,主要体现在格式、功能和使用的工具上。

1. 格式和工具

  • requirements.txt:这是一个纯文本文件,列出了项目所需的所有包及其版本号(可选指定)。它通常与 pip 工具一起使用,例如使用 pip install -r requirements.txt 命令来安装依赖。

  • Pipfile:这是一个使用 TOML(Tom’s Obvious, Minimal Language)格式的文件,它提供了一种更为结构化的方式来声明项目所需的包,包括版本、来源等信息。Pipfile 通常与 Pipenv 工具一起使用,后者旨在提供一个更加完善的包管理工作流,包括自动创建和管理虚拟环境。

2. 功能

  • requirements.txt 主要关注于列出依赖,但不直接处理虚拟环境。用户需要手动创建和管理虚拟环境。

  • PipfilePipenv 提供了更全面的依赖管理解决方案,不仅包括依赖管理还包括虚拟环境的自动创建和管理。Pipfile 分为两个主要部分:[packages] 用于生产环境的依赖,[dev-packages] 用于开发环境的依赖。此外,Pipfile.lock 文件(由 Pipenv 自动生成)确保了依赖的一致性,通过锁定依赖的具体版本来避免未来可能出现的兼容性问题。

3. 使用场景

  • requirements.txt 由于其简单性,适用于需要快速共享依赖列表的场景,或是在自动化脚本中安装依赖时。

  • PipfilePipenv 适用于需要更全面依赖管理的项目,尤其是当项目依赖特定版本的包,或者开发和生产环境依赖不同时。Pipenv 的使用提高了项目的可维护性和依赖管理的准确性。

总的来说,PipfilePipenv 提供了一种更现代化的依赖管理方式,特别是对于较大的项目或是多人协作的项目,它们可以提供更好的依赖版本控制和环境隔离。而 requirements.txt 由于其简单和广泛的支持,仍然是许多项目和情景下的首选。

相关推荐

  1. pip/conda导出导入环境

    2024-03-26 15:00:03       66 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 15:00:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 15:00:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 15:00:03       82 阅读
  4. Python语言-面向对象

    2024-03-26 15:00:03       91 阅读

热门阅读

  1. 【C/C++】多项式求和

    2024-03-26 15:00:03       47 阅读
  2. 【学习心得】人工智能概念拾遗

    2024-03-26 15:00:03       42 阅读
  3. Modbus TCP协议介绍(ModbusTCP)

    2024-03-26 15:00:03       31 阅读
  4. Elasticsearch 基础之映射(mappping)

    2024-03-26 15:00:03       44 阅读
  5. 网络小基础

    2024-03-26 15:00:03       39 阅读
  6. Docker in Docker原理与实战

    2024-03-26 15:00:03       43 阅读
  7. 通用人工智能与人类工作的未来

    2024-03-26 15:00:03       39 阅读
  8. 高级 IO

    高级 IO

    2024-03-26 15:00:03      35 阅读
  9. oslo_policy学习小结

    2024-03-26 15:00:03       35 阅读