使用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 相关文章推荐
在win和Linux系统中python命令行运行的不同
Jul 03 Python
关于python pyqt5安装失败问题的解决方法
Aug 08 Python
浅谈Python peewee 使用经验
Oct 20 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
Apr 28 Python
Python字符串的全排列算法实例详解
Jan 07 Python
Python中最大递归深度值的探讨
Mar 05 Python
python语言基本语句用法总结
Jun 11 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
Python装饰器实现方法及应用场景详解
Mar 26 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
Java byte数组操纵方式代码实例解析
Jul 22 Python
关于Python使用turtle库画任意图的问题
Apr 01 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 #Python
Python天气语音播报小助手
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
You might like
PHP实现显示照片exif信息的方法
2014/07/11 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
PHP简单实现合并2个数字键数组值的方法
2017/05/30 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
python计算N天之后日期的方法
2015/03/31 Python
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
python求解汉诺塔游戏
2020/07/09 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
师范毕业生求职信
2014/07/11 职场文书
审计班子对照检查材料
2014/08/27 职场文书
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server