使用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线程池的实现实例
Nov 18 Python
Django 实现下载文件功能的示例
Mar 06 Python
Python实现判断给定列表是否有重复元素的方法
Apr 11 Python
Python数据类型之String字符串实例详解
May 08 Python
python视频按帧截取图片工具
Jul 23 Python
python实现对图片进行旋转,放缩,裁剪的功能
Aug 07 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
Python使用微信接入图灵机器人过程解析
Nov 04 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
如何在Win10系统使用Python3连接Hive
Oct 15 Python
分享Python获取本机IP地址的几种方法
Mar 17 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 #Python
Python天气语音播报小助手
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
You might like
PHP连接MongoDB示例代码
2012/09/06 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
php cookie 详解使用实例
2016/11/03 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
AngularJS实现注册表单验证功能
2017/10/16 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
火箭队口号
2014/06/18 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
2015年公务员工作总结
2015/04/24 职场文书
草房子读书笔记
2015/06/29 职场文书
婚宴来宾致辞
2015/07/28 职场文书
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android