Python—pipenv精心整理教程

本文详细介绍了Python的虚拟环境管理工具pipenv,包括其优势、使用教程、命令详解以及最佳实践。pipenv结合了pip和virtualenv的功能,提供更好的依赖管理,如自动锁定版本、方便的包安装和卸载,以及简化docker化的项目管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在这里插入图片描述

前言

关于Python虚拟环境管理,很多人一开始不以为意,把编程时所有依赖的库全安装在一起,要用的时候直接导入,看似非常方便,但是会造成很多隐患:

  • 当电脑/服务器里面的项目越来越大,更新迭代次数多了,会造成很多以前用到现在不需要用到的库,把这些库都写在requirements里面会造成冗余,而且docker化的时候安装requirements特别慢;
  • 当电脑/服务器里面的项目越来越多,会造成很多项目的依赖库的版本相互冲突,而且也不敢随便删掉/更新某些库,因为有可能会造成某个项目的依赖无法找到或者版本不兼容的故障; 所以,Python在实际项目应用当中,虚拟环境管理是非常重要的

Python虚拟环境管理工具的发展

随着越来越多的python用于实际项目开发中,Python的虚拟环境管理工具出行了很多,最常用的便是virtualenv,virtualenvwrapper,pipenv这几种,事实上,这几种虚拟环境的管理都是基于virtualenv,只是做了不同的封装,达到了更好的效果。

  1. virtualenv ,此工具会在项目目录下创建一个文件夹,名字叫做virtualenv_name,此目录下会包含python拷贝,之后所有的依赖都会保存至此目录中,在虚拟环境激活状态下,可以安装所需的依赖包,安装的依赖包会保存至项目虚拟环境目录virtualenv_name 下,不会污染系统全局环境;
  2. virtualenvwrapper ,virtualenvwrapper是对virtualenv接口的封装。virtualenvwrapper会将虚拟环境的目录统一保存,不需手动管理,使用起来更加便利;
  3. pipenv ,pipenv是Kenneth Reitz在2017年1月发布的Python依赖管理工具,现在由PyPA维护。你可以把它看做是pip和virtualenv的组合体,而它基于的Pipfile则用来替代旧的依赖记录方式(requirements.txt),pipenv 在易用性上要简单很多,同时增加了 lock 文件,能更好的锁定版本。如果没有特殊要求可以 pipenv 直接使用 lock 的版本,开发又可以小步迭代,实现依赖的稳步升级。

pipenv的优势

  1. pipenv会在项目目录下创建Pipfile和Pipfile.lock文件,可以更好的管理包之间的依赖关系,以前我们需要将虚拟环境依赖包的导出为requirements.txt, 一旦依赖包变动,就要重新导出,现在Pipfile和Pipfile.lock文件可以节省这些步骤,更方便地管理;
  2. 安装卸载包无需激活虚拟环境,直接在项目文件夹下即可操作;
  3. 卸载的时候,可以自动检查依赖库是否被其他包依赖,来选择是否彻底删除。也可以通过 pipenv graph 来查看各个包的依赖关系图;
  4. 当代码需要在虚拟环境执行时,通过pipenv run python xx.py,即可在虚拟环境下执行python文件。如果需要在当前命令行持续执行虚拟环境下任务,可以通过pipenv shell 生成新的shell,此shell即处于虚拟环境激活状态,可以持续在虚拟环境下执行任务;
  5. 便于docker容器化管理,Pipfile文件支持生成requirements文件,便于项目代码docker化管理,另外,pipfile还支持–dev环境,可以在调试阶段安装许多调试工具等,而不影响生产环境的环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值