Python | Pipenv官方推荐的python包管理工具
原文地址:https://cloud.tencent.com/developer/article/1355672
Pipenv - 官方推荐的的python包管理工具。
Pipenv是一款旨在将所有包管理工具(如bundler, composer, npm, cargo, yarn等)的优点集中应用于python领域中的工具。它对各个平台都有很好的支持。
它可以为你的项目自动创建和管理虚拟环境,并且在你安装/删除包时自动在Pipfile中添加/移除相应的包。它同时生成一个非常重要的Pipfile.lock文件,来保证所构建环境的确定性。
Pipenv想要解决的问题是多方面的:
- 你不需要再分别使用pip和virtualenv,在Pipenv中他们一起工作
- 管理一个requirements.txt文件会产生很多问题,所以Pipenv用后面会出现的Pipfile和Pipfile.lock将其代替,这在实际例子中效果会更好。
- 为了安全性,哈希在多处被使用。自动公开安全漏洞。
- 让你通过图形深入了解当前的依赖关系($ pipenv graph)
- 通过加载 .env 文件简化开发流程
安装
Windows环境:
$ pip install pipenv
如果你使用的是macOS,你可以使用Homebrew安装:
$ brew install pipenv
特性
- 容易的实现确定性构建,同时可轻易地指定你想要的内容
- 在锁定依赖项时,生成并检查文件的哈希
- 如果pyenv可用,自动安装所需要的Python
- 通过查找Pipfile,递归的自动查找你的项目
- 如果Pipfile不存在,则自动生成一个
- 在标准地址自动创建一个虚拟环境
- 当包被安装或者删除时,自动在Pipfile中修改。
- 如果 .env 文件存在,则自动载入
主要命令包括 install,uninstall,以及lock(生成Pipfile.lock)。这些命令可以替代$ pip install使用以及对虚拟环境的手动管理(激活虚拟环境,只需运行$ pipenv shell)
基本概念
- 当虚拟环境不存在时,会自动创建一个
- 当没有参数传给 install 时,将安装所有指定的包
- 通过 $ pipenv --three,初始化一个Python3的虚拟环境
- 通过$ pipenv --two,初始化一个Python2的虚拟环境
- 其他命令下生成的虚拟环境都是默认设置
其他命令
- shell 命令会生成一个激活了虚拟环境的shell
- run 将运行输入到虚拟环境的命令,并转发所有参数(e.g. $ pipenv run python)
- check 确定当前环境满足PEP 508的要求
- graph 将输出一个包含当前所有已安装依赖的漂亮图形
Shell 补全
举个例子,使用fish shell,将下列命令加入~/.config/fish/completions/pipenv.fish:
eval (pipenv --completion)
另外,也可以使用bash,将下列代码加入 .bashrc 或者 .bash_profile:
eval "$(pipenv --completion)"
神奇的shell补全功能现在已经可以使用了!(Fish 是最好的shell,你应该使用它)
应用


定位项目

定位虚拟环境

定位Python解释器

安装包

安装一个开发环境依赖

展示一个依赖图:

生成一个lockfile

安装所有开发依赖

卸载全部

使用shell:

原文发布于微信公众号 - Python专栏(xpchuiit)
Python | Pipenv官方推荐的python包管理工具的更多相关文章
- Python包管理工具小结
此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 作为一名接触Python有一段时间的初学者,越来越体会到Python的方便之处,它使人能更 多的关注业务本身 ...
- Python 包管理工具 pip 与 conda
简介 pip是接触 python 后最早认识的包管理工具.通过使用 pip 能够自动下载和解决不同 python 模块的依赖问题,使 python 的配置过程变得简单. 与 pip 类似,conda ...
- Golang学习--包管理工具glide
上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步. 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依 ...
- glide包管理工具
上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步. 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依 ...
- 包管理工具Carthage使用
iOS项目中第三方开源库的工具有Cocoapods和Carthage,swift官方出了一个包管理工具SPM(Swift Package Manager). 首先,大体讲一下Cocoapods和Car ...
- python版本管理工具pyenv和包管理工具pipenv
一.pyenv版本管理工具 pyenv是一个python版本管理工具,可以实现轻松切换多个python版本 它可根据每个用户更改全局python版本,也可以为每个项目指定python版本,还可以管理v ...
- Python黑帽编程1.3 Python运行时与包管理工具
Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...
- python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...
- python包管理工具他们之间的关系
python包管理工具之间的关系 现在的python包管理工具有很多,非常混乱,必须理清他们之间的关系才能更好的使用python构建强大的包关系系统工具. 首先:python官方推荐的第三方库是PyP ...
随机推荐
- MySQL Backup--Xtrabackup介绍
Xtrabackup介绍 Xtrabackup是由Percona公司研发的开源热备工具,支持MYSQL 5.0 以上版本. 由于Xtrabackup支持备份innodb表,实际生产环境中我们使用的工具 ...
- GNS3、Wireshark、SecureCRT 环境部署
本次GNS3环境部署教程基于官方推荐的稳定版1.5.4.初次接触此软件,详细的使用方法不是很清楚,所以以此作为学习记录,仅供参考,后期补充. 软件介绍 GNS3 GNS3是一款具有图形化界面可以运行在 ...
- 解决iOS微信H5支付跳转微信后不返回App问题(Swift-WKWebview)(转)
问题分析 正常的H5支付流程如下 按照上面的支付流程会出现 App -> 微信 -> 支付 -> 点击 完成 -> safari访问redirect_url设置的URL,这种流 ...
- linux下nm命令的使用
linux下强大的文件分析工具 -- nm 什么是nm nm命令是linux下自带的特定文件分析工具,一般用来检查分析二进制文件.库文件.可执行文件中的符号表,返回二进制文件中各段的信息. 目标文件. ...
- 阿里云云计算助理工程师认证(ACA)
经过两天的学习(观看视频,阅读官方帮助文档),完成了初级云计算认证. 本次考试难度相对较低,考察内容较为初级 考点主要考察学员是否真正的动手实验过,不局限于视频中讲解的内容,较多的考点为视频中操作演示 ...
- HDU4548美素数——筛选法与空间换时间
对于数论的学习比较的碎片化,所以开了一篇随笔来记录一下学习中遇到的一些坑,主要通过题目来讲解 本题围绕:素数筛选法与空间换时间 HDU4548美素数 题目描述 小明对数的研究比较热爱,一谈到数,脑子里 ...
- AVL树的旋转
平衡二叉树在进行插入操作的时候可能出现不平衡的情况,AVL树即是一种自平衡的二叉树,它通过旋转不平衡的节点来使二叉树重新保持平衡,并且查找.插入和删除操作在平均和最坏情况下时间复杂度都是O(log n ...
- js 数组 : 差集、并集、交集、去重、多维转一维
//input:[{name:'liujinyu'},{name:'noah'}] //output:['liujinyu','noah'] Array.prototype.choose = func ...
- git merge与git rebase区别(转载)
这是最近看的讲的比较通俗易懂的rebase与merge的区别了 https://www.jianshu.com/p/4079284dd970
- keras中to_categorical()函数解析
from keras.utils.np_utils import * # 类别向量定义 b = [0, 1, 2, 3, 4, 5, 6, 7, 8] # 调用to_categorical将b按照9个 ...