使用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之??碌某?? target=
Sep 12 Python
python实现支持目录FTP上传下载文件的方法
Jun 03 Python
Python正则表达式使用经典实例
Jun 21 Python
python实现自动发送邮件发送多人、群发、多附件的示例
Jan 23 Python
django中静态文件配置static的方法
May 20 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
深入理解Django-Signals信号量
Feb 19 Python
Python3 集合set入门基础
Feb 10 Python
关于python 跨域处理方式详解
Mar 28 Python
python如何实现递归转非递归
Feb 25 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 #Python
Python天气语音播报小助手
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
You might like
Zerg兵种介绍
2020/03/14 星际争霸
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
探究python中open函数的使用
2016/03/01 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
基于Python中的yield表达式介绍
2019/11/19 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
自考毕业生自我鉴定
2013/11/04 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
岗位职责风险点
2014/03/12 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
2015年技术工作总结范文
2015/04/20 职场文书