python 新神器pipenv

  • 引言

大家都知道pip(pip2、pip3分别对应python的2、3版本)是python的包管理工具,使得python的第三方包的安装等任务十分方便(pip主要安装的第三方软件包来之python社区Pypi,具体如何向pypi发布和下载第三方包这里就不赘述啦)。另外,很多python的虚拟环境(具体虚拟环境是干什么的我就不多说了)工具如virtualenv、pyenv等等都得到了广泛使用,我之前就用的virtualenv,但virtualenv有一些缺点,我的直观感受是没见一个项目就要新建一个虚拟环境,太费事,不够偷懒。而requests库作者Kenneth Reitz开发了一个pipenv,结合了pip及virtualenv的功能和优点,集成出了pipenv这个工具。其目的是替代virtualenv和pyenv,将pip及virtualenv的功能集于一身。我学习并试用了一下,感觉非常好(至少比virtualenv)。下面介绍我的操作流程。

  • 安装

liunx下安装命令

pip install pipenv --user [username]

--user 指定将pipenv安装在该用户主目录下,如图

python 新神器pipenv_第1张图片

从上图中可以看到,pipenv安装过程包含了virtualenv, pip等软件包的安装。

并且在用户home目录下的.local文件夹中对应生成了如下文件结构,可以看到以后的pipenv虚拟环境的”家“就是这了:


  • 创建和试用虚拟环境  

1、创建虚拟环境:

cd project1
pipenv install

pipenv install 是安装已经提供的包并将它们加入到Pipfile中(Pipfile是python包依赖文件,列出了项目中所有包的依赖,这是pipenv相当大的创新,对应的是Pipfile.lock文件)(Pipfile和Pipfile.lock两个文件互相配合,完成虚拟环境的管理工作。),这里同时创建了项目的虚拟环境。总的来讲:

pipenv install的时候有三种逻辑:

  • 如果目录下没有Pipfile和Pipfile.lock文件,表示创建一个新的虚拟环境;
  • 如果有,表示使用已有的Pipfile和Pipfile.lock文件中的配置创建一个虚拟环境;
  • 如果后面带诸如django这一类库名,表示为当前虚拟环境安装第三方库。

python 新神器pipenv_第2张图片

从上图可以看出,pipenv命令更新包依赖并同时生成了Pipfile 和Pipfile.lock文件(包依赖关系),创建了虚拟环境。

2、激活虚拟环境:

pipenv shell

激活后,查看解释器路径which python3,这时已经在虚拟环境了

3、推出虚拟环境:

exit
  • 安装和卸载第三方库

1、使用pipenv创建虚拟环境后,进入pipfile所在目录,使用install命令安装第三方库。 例如

pipenv install gcp
其实把pipenv当作pip来使用。无需像virtualenv那样需要额外的先启动虚拟环境。pipenv区分你是在给哪个虚拟环境安装,依赖的是Pipfile文件的位置。

2、卸载第三方库:

pipenv uninstall gcp
  • 管理开发环境

通常有一些Python包只在你的开发环境中需要,而不是在生产环境中,例如单元测试包。 Pipenv使用--dev标志区分两个环境(开发和生产)。

pipenv install --dev django

django库现在将只在开发虚拟环境中使用。如果要在你的生产环境中使用下面命令安装已有的项目:

pipenv install

该命令执行后项目中并不会安装django包。另外,如果开发人员将你的项目克隆到自己的开发环境中,他们可以使用--dev标志,将django也安装:

pipenv install --dev

也就是说一个--dev参数,帮你在同一个虚拟环境中又区分出了开发和非开发环境。

  • pipenv虚拟环境运行python命令
pipenv run python your_script.py

这将使用当前虚拟环境关联的Python解释器,执行命令。

  • pipenv执行相关参数:

pipenv 具有下列的选项:

$ pipenv
Usage: pipenv [OPTIONS] COMMAND [ARGS]...

Options:
  --update         更新Pipenv & pip
  --where          显示项目文件所在路径
  --venv           显示虚拟环境实际文件所在路径
  --py             显示虚拟环境Python解释器所在路径
  --envs           显示虚拟环境的选项变量
  --rm             删除虚拟环境
  --bare           最小化输出
  --completion     完整输出
  --man            显示帮助页面
  --three / --two  使用Python 3/2创建虚拟环境(注意本机已安装的Python版本)
  --python TEXT    指定某个Python版本作为虚拟环境的安装源
  --site-packages  附带安装原Python解释器中的第三方库
  --jumbotron      不知道啥玩意....
  --version        版本信息
  -h, --help       帮助信息

pipenv 可使用的命令参数:

Commands:
  check      检查安全漏洞
  graph      显示当前依赖关系图信息
  install    安装虚拟环境或者第三方库
  lock       锁定并生成Pipfile.lock文件
  open       在编辑器中查看一个库
  run        在虚拟环境中运行命令
  shell      进入虚拟环境
  uninstall  卸载一个库
  update     卸载当前所有的包,并安装它们的最新版本

  • over

你可能感兴趣的:(Python相关)