使用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 相关文章推荐
gearman的安装启动及python API使用实例
Jul 08 Python
Python 不同对象比较大小示例探讨
Aug 21 Python
Python实现从url中提取域名的几种方法
Sep 26 Python
详解Python中用于计算指数的exp()方法
May 14 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
利用Python实现图书超期提醒
Aug 02 Python
老生常谈Python进阶之装饰器
May 11 Python
解决yum对python依赖版本问题
Jul 05 Python
Python实现最常见加密方式详解
Jul 13 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
推荐值得学习的12款python-web开发框架
Aug 10 Python
Keras多线程机制与flask多线程冲突的解决方案
May 28 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 #Python
Python天气语音播报小助手
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
You might like
单位速度在实战中的运用
2020/03/04 星际争霸
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
python写入已存在的excel数据实例
2018/05/03 Python
Python实现图片拼接的代码
2018/07/02 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
Python阶乘求和的代码详解
2020/02/14 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
使用Python实现音频双通道分离
2020/12/25 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
红旗方阵解说词
2014/02/12 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
springcloud之Feign超时问题的解决
2021/06/24 Java/Android