使用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操作json数据的一个简单例子
Apr 17 Python
Python+微信接口实现运维报警
Aug 27 Python
深入理解NumPy简明教程---数组1
Dec 17 Python
python实现随机梯度下降(SGD)
Mar 24 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
python实现微信打飞机游戏
Mar 24 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
Django-rest-framework中过滤器的定制实例
Apr 01 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
如何快速理解python的垃圾回收机制
Sep 01 Python
python爬虫调度器用法及实例代码
Nov 30 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 #Python
Python天气语音播报小助手
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
You might like
php实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
python生成九宫格图片
2018/11/19 Python
python进行TCP端口扫描的实现
2018/12/21 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
python判断链表是否有环的实例代码
2020/01/31 Python
Django缓存Cache使用详解
2020/11/30 Python
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
美国折扣网站:jClub
2017/08/07 全球购物
英国最大的正宗复古足球衫制造商和零售商:TOFFS
2018/06/21 全球购物
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
党员思想汇报范文
2013/12/30 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
老师的检讨书
2014/02/23 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
Python学习之迭代器详解
2022/04/01 Python