使用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实现类继承实例
Jul 04 Python
python如何实现远程控制电脑(结合微信)
Dec 21 Python
python的Crypto模块实现AES加密实例代码
Jan 22 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
Aug 08 Python
python3使用GUI统计代码量
Sep 18 Python
python3获取url文件大小示例代码
Sep 18 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
pip安装tensorflow的坑的解决
Apr 19 Python
openCV提取图像中的矩形区域
Jul 21 Python
python如何操作mysql
Aug 17 Python
python lambda 表达式形式分析
Apr 03 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 #Python
Python天气语音播报小助手
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
You might like
默默小谈PHP&MYSQL分页原理及实现
2007/01/02 PHP
在php MYSQL中插入当前时间
2008/04/06 PHP
PHP nl2br函数 将换行字符转成 <br>
2009/08/21 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
javascript 动态添加表格行
2006/06/22 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
跟老齐学Python之重回函数
2014/10/10 Python
Python实现对PPT文件进行截图操作的方法
2015/04/28 Python
浅谈Python 递归算法指归
2019/08/22 Python
python实现低通滤波器代码
2020/02/26 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
商务考察邀请函范文
2014/01/21 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
英语分层教学实施方案
2014/06/15 职场文书
三八节活动主持词
2015/07/04 职场文书