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 由于其简单和广泛的支持,仍然是许多项目和情景下的首选。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/572555.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YoloV5改进策略:BackBone改进|ECA-Net:用于深度卷积神经网络的高效通道注意力

摘要 本文使用ECA-Net注意力机制加入到YoloV5中。我尝试了多种改进方法,并附上改进结果,方便大家了解改进后的效果,为论文改进提供思路。(更新中。。。。) 论文:《ECA-Net:用于深度卷积神经网…

解决方案:如何安装neo4j软件

文章目录 一、安装JDK二、安装neo4j 一、安装JDK 第一步先安装JDK,因为neo4j环境需要JDK,过程比较多,截图如下: 安装JDK网址 https://www.oracle.com/java/technologies/downloads winR,输入cmd,再输入j…

【计算机考研】408到底有多难?

你真以为大家是学不会408吗? 不是!单纯是因为时间不够!!! 再准确一些就是不会分配时间 408的知识其实并不难,要说想上130那确实有难度,但是100在时间充裕的情况下还是可以做到的 我本人是双…

基于springboot的房屋租赁管理系统+数据库+免费远程调试

项目介绍: 基于springboot的房屋租赁管理系统。Javaee项目,springboot项目,采用M(model)V(view)C(controller)三层体系结构,通过Spring SpringBoot JspMaven来实现。MyS…

力扣---网络延迟时间---迪杰斯特拉,弗洛伊德floyd

首先推荐博客:图论最短路径专题(力扣743、5888)_力扣 最短路径-CSDN博客 迪杰斯特拉算法: 太久没有做图论的题了,,临时抱佛脚。。 这道题可以转化为max{点x到点k的距离}。因为带权图(权值为正…

【Java跳槽面试必备】2024年最新八股文

Java基础面试题 Java的特点 Java 与 C 的区别 JDK/JRE/JVM三者的关系 Java程序是编译执行还是解释执行? 面向对象和面向过程的区别? 面向对象有哪些特性? 数组到底是不是对象? Java的基本数据类型有哪些? 为什么不能用…

计算机网络:物理层 - 信道复用

计算机网络:物理层 - 信道复用 频分复用时分复用统计时分复用波分复用码分复用 计算机网络中,用户之间通过信道进行通信,但是信道是有限的,想要提高网络的效率,就需要提高信道的利用效率。因此计算机网络中普遍采用信道…

嵌入式学习46——硬件相关2串口通信

串口: 端口: COM 波特率: 9600 115200 (bps) 每秒传输的数据…

代码随想录算法训练营第二十二天| LeetCode235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

一、LeetCode235. 二叉搜索树的最近公共祖先 题目链接/文章讲解/视频讲解: https://programmercarl.com/0235.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B1%E7%A5%96%E5%85%88.html 状态:已解决 1.思路…

vue3+threejs新手从零开发卡牌游戏(十六):初始化对方手牌

添加对方手牌区时注意位置调整&#xff0c;以及手牌应该是背面朝上&#xff0c;加个rotateX翻转即可&#xff0c;其他代码和p1.vue代码一致&#xff0c;game/hand/p2.vue代码如下&#xff1a; <template><div></div> </template><script setup lan…

[windows]Windows上缩放窗体的两种方式

第一种 直接上图 第二种 第二种方式时&#xff0c;快速拖动时&#xff0c;如果是chrome浏览器套壳软件就会出现拖动部分出现黑边的现象而原生的桌面应用程序则不会出现黑边。这现象在chrome浏览器本身就存在。如图 typora是用electron写的软件存在该问题

【项目技术介绍篇】如何在本地运行若依项目

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…