首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pipenv:官方推荐的python包管理工具

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 installpipenv

用户的好评

Jannis Leidel, former pip maintainer—

Pipenv是一个精品,是我一直想将pip打造成的样子,它符合我的思维习惯,基本替代了virtualenvwrapper,并减少了很多手动的pip操作。使用它吧!

Justin Myles Holmes—

pipenv最终是一种抽象的概念,它意味着要让人的头脑(而不仅仅是文件系统)参与其中。

Isaac Sanders—

Pipenv是我今天遇到最好的事情。 谢谢,Kenneth!

特性

容易的实现确定性构建,同时可轻易地指定你想要的内容

在锁定依赖项时,生成并检查文件的哈希

如果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:

文档

文档存放在https://docs.pipenv.org/

英文原文:https://github.com/kennethreitz/pipenv

译者:XTH

*声明:推送内容及图片来源于网络,部分内容会有所改动,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

- END -

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180922B1PSTU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券