社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

马哥Linux运维 • 7 年前 • 838 次点击  

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

Pipenv是一款旨在将所有包管理工具(如bundler, composer, npm, cargo, yarn等)的优点集中应用于python领域中的工具。它对各个平台都有很好的支持。

它可以为你的项目自动创建和管理虚拟环境,并且在你安装/删除包时自动在Pipfile中添加/移除相应的包。它同时生成一个非常重要的Pipfile.lock文件,来保证所构建环境的确定性。


Pipenv想要解决的问题是多方面的:

  • 你不需要再分别使用pipvirtualenv,在Pipenv中他们一起工作

  • 管理一个requirements.txt文件会产生很多问题,所以Pipenv用后面会出现的PipfilePipfile.lock将其代替,这在实际例子中效果会更好。

  • 为了安全性,哈希在多处被使用。自动公开安全漏洞。

  • 让你通过图形深入了解当前的依赖关系($ pipenv graph

  • 通过加载 .env 文件简化开发流程

安装

Windows环境:

$ pip install pipenv

如果你使用的是macOS,你可以使用Homebrew安装:

$ brew install pipenv

用户的好评

Jannis Leidel, former pip maintainer—

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

Justin Myles Holmes

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

Isaac Sanders

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

特性

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

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

  • 如果pyenv可用,自动安装所需要的Python

  • 通过查找Pipfile,递归的自动查找你的项目

  • 如果Pipfile不存在,则自动生成一个

  • 在标准地址自动创建一个虚拟环境

  • 当包被安装或者删除时,自动在Pipfile中修改。

  • 如果 .env 文件存在,则自动载入

  主要命令包括 installuninstall,以及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





————广告时间————


马哥教育2017年Python自动化运维开发实战网络班12月3日开班,马哥联合BAT、豆瓣等一线互联网Python开发达人,根据目前企业需求的Python开发人才进行了深度定制,加入了大量一线互联网公司:大众点评、饿了么、腾讯等生产环境真是项目,课程由浅入深,从Python基础到Python高级,让你融汇贯通Python基础理论,手把手教学让你具备Python自动化开发需要的前端界面开发、Web框架、大监控系统、CMDB系统、认证堡垒机、自动化流程平台六大实战能力,让你从0开始蜕变成Hold住年薪20万的Python自动化开发人才

扫描二维码领取学习资料

更多Python好文请点击【阅读原文】哦

↓↓↓



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/7aSnfKArIF
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4405
 
838 次点击