关于Pipenv的使用总结

对Pipenv的使用的一些总结

Posted by RainbomSea on November 15, 2018

什么是 Pipenv

Pipenv是Kenneth Reitz在2017年1月发布的Python依赖管理工具,现在由PyPA维护。你可以把它看做是pip和virtualenv的组合体,而它基于的Pipfile则用来替代旧的依赖记录方式(requirements.txt)。

在这篇文章里,我将会以旧的依赖管理工作流程作为对比来介绍Pipenv的基本用法,更详细的用法可以参考Pipenv文档,或是Kenneth Reitz在PyCon 2018的演讲《Pipenv: The Future of Python Dependency Management》。

为什么使用 Pipenv

Pipenv会自动帮你管理虚拟环境和依赖文件,并且提供了一系列命令和选项来帮助你实现各种依赖和环境管理相关的操作。简而言之,它更方便、完善和安全。你可以通过Pipenv文档开头的介绍来了解它的详细特性。Pipenv的slogan是“Python Dev Workflow for Humans”,作为人类,当然应该尝试一下……

上面直接拿了别人的了,感觉自己也说不出来什么,总之就是用了 Pipenv 之后可以让你的 Python 环境管理方面变得更加简单快乐,方便我们的开发。

下载

  • 首先 用 pip 来安装 pip install pipenv

  • 下载完后你在终端输入 pipenv 应该会报错,因为 pipenv 默认安装在 ~/.local下(其实红色字体也说明了),没有在PATH中, 运行 python -msite --user-base 可以查看你安装的路径

在这里插入图片描述

  • 这样我们就需要把安装路径下的 bin(这里我的就是/home/rainbomsea/.local) 添加到 PATH 中.

  • 打开~/.bashrc文件在最后一句加上 export PATH=~/.local/bin:$PATH

在这里插入图片描述

  • 保存退出 运行 source ~/.bashrc, 这次输入 pipenv 就会有成功了

使用

  • 下载完就是创建了, 首先是进入到项目文件夹下(这里以example为例), 假设你需要requests这个模块

  • 运行pipenv install requests (这里其实就是吧pipenv installpipenv install requests两步当一步了)

在这里插入图片描述

  • 如上图, 他首先会创建一个虚拟环境然后下载requests的相关模板,然后再在当前目录下创建了Pipfile ,Pipfile.lock这两个文件

  • Pipfile 存放当前虚拟环境的配置信息,用来代替以前的requirements.txt文件

  • Pipfile.lock 记录了当前环境中安装的依赖的版本号以及哈希,以保证每次装出来的依赖都是一致的。

  • 图中 Virtualenv location: /home/rainbomsea/.local/share/virtualenvs/example-gBdafEu-说明了你虚拟环境的安装位置

  • 如果想吧环境就安装在当前目录下, 可以在当前目录下创建一个.venv文件夹,然后再执行pipenv install,这样虚拟环境就会安装在项目文件夹下了

  • 安装成功之后,我们可以创建一个简单的main.py来使用一下它

import requests

response = requests.get('https://httpbin.org/ip')

print('你的 IP 地址是 {0}'.format(response.json()['origin']))
  • 然后用 pipenv run 运行这个文件
pipenv run python main.py
  • 你可以获得类似这样的输出:
你的 IP 地址是 8.8.8.8
  • 也可以使用 pipenv shell 来生成一个新的 shell 这样就可以在shell 里面直接输入 python main.py 来运行,exit退出shell环境

  • 可以通过 pipenv uninstall来卸载你的包

pipenv uninstall requeste
  • 删除环境的话可以直接使用 pipenv --rm.不想用pipenv了那就吧 PipfilePipfile.lock这两个文件都删了就行
pipenv --rm