包管理神器-pipenv

一:前言

介绍一个包管理神器-pipenv,这个工具可让咱们在写代码、建立Python运行环境、package依赖关系以及项目合做的时候更有效率。python

在pycon2018上,Kenneth Reitz介绍的Pipenv在不久就成为了Python官方推荐的包管理工具。下面是pycon2018的连接,推荐你们看看:https://www.bilibili.com/video/av26610021/?p=1。shell

二:Python包管理历史

最初的时候,咱们有了Python,可是没有干净的方法来安装软件包,早期的时候,当用户想安装包时,须要先从网上把文件下载下来,解压,而后执行Python setup.py install,就能将包安装好。django

后来有了PyPI,开发者能够把他们的包上传到上面,而后其余开发者能够从这里下载他们须要的包,而后再执行python setup.py install 进行安装,可是这样仍是存在许多的问题,好比说:整个过程须要人工,不方便自动化,没法安装多个不一样版本等等。安全

再后来有了easy_install,当用户想要安装某个包的是否,只要执行easy_install 包名,工具就会自动把包以及依赖下载下来进行安装,这解决了没法自动化的问题,可是这种方法又带来了新的问题,只能安装,却没有方法卸载。ide

到了2008年,pip出现了,还引入了requirements files的概念,可使用户很是方便的复制Python环境。好比说安装某个包,执行pip install 包名,须要卸载,执行pip uninstall 包名,须要批量安装,执行pip install -r requirements.txt。直到如今,pip已经成为很是好用的包管理工具了。pip解决了单个环境下的包管理问题,可是若是咱们须要在一台机器上开发多个项目,这多个项目用到了相同包的不一样版本,这就成了很是棘手的问题了。工具

为了解决这个问题,virtualenv出现了。virtualenv能够为每一个项目建立一套隔离的Python环境,再使用pip进行包管理。目前pip+virtualenv是目前比较主流的Python开发流程。慢慢的这种方式也逐渐暴露出了缺点,好比pip的requirements.txt过于简单,没办法表示具体的依赖关系,须要使用两个工具(pip+virtualenv)才能完成工做。ui

为了解决这两个问题pipenv登场了,它主要使用pipfile来取代以前的requirements.txt,pipfile比requirements.txt表达能力更强,默认支持两种依赖,能够将多个requirements.txt的内容合并到一块儿,方便管理,而且经过pipfile.lock对环境进行明确,详细的描述。pipenv可让你无缝的使用pipfile,pipfile.lock,保证每一个依赖的信息都是明确的,它提供简洁的命令操做virtualenv,而且提供不少辅助工具,好比pipenv graph,能够显示项目的完整依赖关系。命令行

目前Pipenv已是Python官方推荐的工做流工具了。blog

三:Pipenv实操

目前pycharm2018.2.4版本以上已经支持pipenv了。three

首先打开命令行:输入pip install pipenv 安装pipenv库。

而后输入:pipenv,若是有以下提示说明安装成功。

  • 接着打开pycharm建立一个项目。

  • 项目建立完成否生成一个pipfile文件,该文件默认的源是国外的,为了增长安装库的速度,咱们把源改为清华源:https://pypi.tuna.tsinghua.edu.cn/simple

下面咱们打开pycharm自带的terminal来安装一个简单的模块,检测是否成功。

在命令行输入:pipenv install requests

 

若是出现下面提示,说明安装成功。

若是出现以下错误,说明项目名称包含中文名。

至此,基本的pipenv环境就搭建好了。

四:pipenv命令详解

pip install --user --upgrade pipenv # 用户安装pipenv pipenv --three # 会使用当前系统的Python3建立环境 pipenv --two # 使用python2建立 pipenv --python 3.6 指定某一Python版本建立环境 pipenv run python 文件名 pipenv run pip ...# 运行pip pipenv shell 激活虚拟环境 pipenv --where 显示目录信息 pipenv --venv 显示虚拟环境信息 pipenv --py 显示Python解释器信息 pipenv install requests 安装相关模块并加入到Pipfile pipenv install django==1.11 安装固定版本模块并加入到Pipfile pipenv graph # 显示依赖图 pipenv check #检查安全漏洞 pipenv lock # 生成lockfilepipenv update # 更新全部的包pipenv --rm # 删除虚拟环境pipenv uninstall requests # 卸载包并从Pipfile中移除 pipenv uninstall --all # 卸载所有包
相关文章
相关标签/搜索