使用pipenv管理python虚拟环境的全过程

作者:AmyZYX 时间:2021-08-26 13:05:55 

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

来源:https://www.cnblogs.com/amyzhu/p/15252756.html

标签:pipenv,python,虚拟环境
0
投稿

猜你喜欢

  • python中ImageTk.PhotoImage()不显示图片却不报错问题解决

    2023-08-26 18:12:06
  • 处理SQL Server 2000的命名实例和多实例

    2009-01-19 13:28:00
  • Dreamweaver初学者常见问题解答

    2007-02-03 11:39:00
  • 让数据站住脚-浅谈用户研究中的信度与效度

    2010-09-10 13:14:00
  • python使用matplotlib:subplot绘制多个子图的示例

    2021-01-26 18:13:08
  • Oracle 自增(auto increment) 或 标识字段的建立方法

    2009-03-06 11:15:00
  • 在ASP处理程序时,进度显示

    2008-08-04 13:27:00
  • python闭包和装饰器你了解吗

    2022-01-11 00:46:02
  • Python判断变量是否已经定义的方法

    2023-08-01 07:14:01
  • Oracle数据库逻辑备份的SH文件

    2010-07-27 13:26:00
  • 基于OpenCv实现的人脸识别(附Python完整代码)

    2022-08-10 21:49:27
  • 轻松掌握执行一个安全的SQL Server安装

    2009-01-13 14:03:00
  • Django接收post前端返回的json格式数据代码实现

    2022-09-30 22:21:22
  • 微信小程序实现日期时间筛选器

    2023-08-29 00:51:37
  • python中实现迭代器(iterator)的方法示例

    2021-07-12 19:32:41
  • Python从list类型、range()序列简单认识类(class)【可迭代】

    2022-09-09 14:07:20
  • 如何在Win下mysql备份恢复命令

    2010-03-03 17:23:00
  • Python 中如何使用 virtualenv 管理虚拟环境

    2022-02-20 00:57:44
  • django 通过ajax完成邮箱用户注册、激活账号的方法

    2022-02-19 05:59:57
  • 图片放大镜,多图片放大(已更新)[可调整倍数、区域大小、展示区域位置]

    2011-06-16 20:43:07
  • asp之家 网络编程 m.aspxhome.com