使用pipenv管理python虚拟环境的全过程


Posted in Python onSeptember 25, 2021

pipenv 是Kenneth Reitz大神的作品,能够有效管理Python多个环境,各种包。过去我们一般用virtualenv搭建虚拟环境,管理python版本,但是跨平台的使用不太一致,且有时候处理包之间的依赖总存在问题;过去也常常用 pip进行包的管理,pip已经足够好,但是仍然推荐pipenv,相当于virtualenv和pip的合体,且更加强大。pipenv开源之后,在GitHub上有很高人气(截止于现在有9600多星)。

pipenv主要有以下特性:

  (1)pipenv集成了pip,virtualenv两者的功能,且完善了两者的一些缺陷。

  (2)过去用virtualenv管理requirements.txt文件可能会有问题,Pipenv使用Pipfile和Pipfile.lock,后者存放将包的依赖关系,查看依赖关系是十分方便。

  (3)各个地方使用了哈希校验,无论安装还是卸载包都十分安全,且会自动公开安全漏洞。。

  (4)通过加载.env文件简化开发工作流程。

  (5)支持Python2 和 Python3,在各个平台的命令都是一样的。

下面介绍下使用pipenv管理python虚拟环境的全过程,一起看看吧!

python的虚拟环境可以为项目创建一个独立的环境,能够解决使用不同版本依赖给项目带来冲突的麻烦。创建虚拟环境的方式有很多种,pipenv会自动帮你管理虚拟环境和依赖文件,并且提供了一系列命令和选项来帮忙你实现各种依赖和环境管理相关的操作。

1.安装pipenv

pip install pipenv

2.Pipfile文件和Pipfile.lock文件

Pipfile文件和Pipfile.lock是在创建虚拟环境时生成的,用来记录安装依赖的信息,Pipfile时用来替代piprequirements.txt的。

Pipfile.lock包含你的系统信息,所有已安装包的依赖包及其版本信息,以及所有安装包及其依赖包的hash校验信息。

3.创建虚拟环境

$ cd myproject

//创建python3.7的虚拟环境
$ pipenv --python 3.7

创建虚拟环境会默认查找当前目录有没有.venv目录,如果没有会默认在home目录用户下的/Users/xxxx/.local/share/virtualenvs创建虚拟环境目录。推荐先在项目下创建一个.venv文件夹,然后再创建虚拟环境。

如果不存在pipfile,会生成一个piffle,并且如果有的库添加会自动编辑这个文件。

4.激活/进入pipenv shell

$ pipenv shell
$ python --version

//根据Pipfile进行依赖安装,忽略Pipfile.lock
$ pipenv install --skip-lock

//安装指定版本模块
$ pip install pymongo==xxx

根据Pipfile进行依赖包安装。

5.退出虚拟环境

$ exit 或者 ctrl+d

6.查看已经安装的依赖

$ pipenv graph

7.更新升级包

$ pipenv update requests

8.通过requirements.txt安装虚拟环境

pipenv install -r requirements.txt

9.生成requirements.txt文件

pipenv lock -r [--dev] > requirements.txt

10.删除虚拟环境

pipevn --rm

扩展阅读:https://rgb-24bit.github.io/blog/2018/pipenv.html

到此这篇关于使用pipenv管理python虚拟环境的全过程的文章就介绍到这了,更多相关pipenv python虚拟环境内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python搭建简易服务器分析与实现
Dec 15 Python
Python利用递归和walk()遍历目录文件的方法示例
Jul 14 Python
详解python里使用正则表达式的全匹配功能
Oct 19 Python
python虚拟环境virtualenv的使用教程
Oct 20 Python
python+pyqt实现右下角弹出框
Oct 26 Python
基于Python pip用国内镜像下载的方法
Jun 12 Python
python实现决策树分类(2)
Aug 30 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
Sep 16 Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 Python
Python 输出详细的异常信息(traceback)方式
Apr 08 Python
解决Django Haystack全文检索为空的问题
May 19 Python
.img/.hdr格式转.nii格式的操作
Jul 01 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 #Python
Python天气语音播报小助手
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
You might like
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python读写Excel文件的实例
2013/11/01 Python
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
Python中的ceil()方法使用教程
2015/05/14 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
python 日志 logging模块详细解析
2020/03/31 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
How TDD works
2012/09/30 面试题
客户服务经理岗位职责
2014/01/29 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
初中英语演讲稿
2014/04/29 职场文书
煤矿安全承诺书
2014/05/22 职场文书
中职招生先进个人材料
2014/08/31 职场文书
学校百日安全活动总结
2015/05/07 职场文书
办公室规章制度范本
2015/08/04 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
解决WINDOWS电脑开机后桌面没有任何图标
2022/04/09 数码科技