使用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
时用来替代pip
的requirements.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


猜你喜欢
- sql server 数据库,sa用户被锁定1、打开数据库——用Windows身份登录数据库2、登录名——双击sa(打开属性)3、常规——设
- 1. 使用.logfile 方法#!/usr/bin/env pythonimport pexpectimport syshost=&quo
- 构建网络ResNet由一系列堆叠的残差块组成,其主要作用是通过无限制地增加网络深度,从而使其更加强大。在建立ResNet模型之前,让我们先定
- 1.创建mysql存储过程,这是个复杂查询加上了判断,比较复杂CREATE PROCEDURE searchAllList (IN trad
- 在Linux中,可以使用nohup将脚本放置后台运行,如下:nohup python myscript.py params1 > no
- 引言微信小程序为了优化用户体验,取消了在进入小程序时立马出现授权窗口。需要用户主动点击按钮,触发授权窗口。那么,在我实践过程中,出现了以下问
- Python continue语句返回while循环的开始。Continue语句拒绝在该循环的当前迭代中的其余语句执行并移动控制
- 1、上下文概念上下文,说白了就是所谓的语境,就是语言环境。比如单独拎出来一篇文章的某一句话,我们可能不能理解它的意思,但是通过这句话所处的语
- 背景基本上只要是做后台开发,都会接触到分页这个需求或者功能吧。基本上大家都是会用MySQL的LIMIT来处理,而且我现在负责的项目也是这样写
- 现在我们已经知道了,fixtures是一个非常强大的功能。那么有的时候,我们可能会写一个fixture,而这个fixture所有的测试函数都
- 通过CMD命令行修改数据库表的一个字段的值,实现连接,访问。第一步、找到MYSQL软件安装所在的bin目录;(1)cd\当前目录(2)指定M
- 今天运行程序时,在Oracle中输入SQL语句:select * from USERS as u ,程序报错输入select * from
- 前言最近国内疫情状况好转,快递业也逐渐恢复,大家的快递是不是跑起来了?本文就来讲解如何让 python自动为你查询快递信息 ,并在
- 本篇博客主要介绍的是pyinstaller在windows下的基本使用和基础避坑在windows中使用pyinstaller工具打包时会出现
- 修改MySQL密码:mysqladmin -u root -p password 123456mysqladmin -u用户名 -p旧密码
- Python程序可以调用一组基本的函数(即内建函数),比如print()、input()和len()等函数。Python本身也内置一组模块(
- 结合网上的资料,自己亲自的去安装了一次MySQL,安装版本是win7x64 5.7.16。在安装过程中出现并解决了如下问题:1.“MySQL
- 本文实例讲述了Python中defaultdict与lambda表达式用法。分享给大家供大家参考,具体如下:从教程中看到defaultdic
- 总结了一下使用Python对xml文件的解析,用到的模块儿如下:分别从xml字符串和xml文件转换为xml对象,然后解析xml内容,查询指定
- 本文主要参考:http://element.eleme.io/#/zh-CN/component/menu在使用elementUI的时候发现