使用 Pipenv 来管理你的 Python 项目

栏目: Python · 发布时间: 6年前

内容简介:使用 Pipenv 来管理你的 Python 项目

1. 简介

N 久前,曾经写过一篇文章介绍过 Python 的虚拟环境(virtualenv 相关笔记),不过 virtualenv 使用起来实在是不太友好,所以后来在其基础上又有了 virtualwrapper、pyenv、Pipenv,今天主要介绍一下 Pipenv 这个工具,现在已经成了 官方推荐 的包管理 工具 了。

1.1 为什么需要虚拟环境

使用虚拟环境有很多好处:

  1. 项目之间的包隔离,比如不同的项目之间需要使用不同版本的包;
  2. 防止污染系统 Python 环境,因为系统中还是有很多地方需要用到 Python 环境的(macOS 是 2.7),如果你的项目是使用 Python 3+ 的话,可能会带来一些迷之问题;
  3. 方便其他开发者来部署开发环境,使用虚拟环境可以方便地导出一份 requirements.txt(或者 Pipfile)来供开发者一键安装所需要的包,而不是运行的是否通过 ImportError 来得知缺少安装了什么包。

这里建议为每个 Project 都创建一份虚拟环境。

2. 安装

Pipenv 的安装十分简单:

pip install pipenv

如果你是 Mac 用户的话,也可以使用 Homebrew 来进行安装:

brew install pipenv

3. 基本使用

切换到你的 Project,创建一个 Python 3 环境:

$ pipenv --three
Creating a virtualenv for this project…
Using /usr/local/bin/python3 to create virtualenv…
⠋Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.7'
/usr/local/Cellar/pipenv/8.3.2/libexec/lib/python2.7/site-packages/virtualenv.py:1039: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
New python executable in /Users/jiayuan/.local/share/virtualenvs/demo-0922AcvC/bin/python3
Also creating executable in /Users/jiayuan/.local/share/virtualenvs/demo-0922AcvC/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /Users/jiayuan/.local/share/virtualenvs/demo-0922AcvC
Creating a Pipfile for this project…

可以看到,它会使用你系统的 Python 3(在我的机器上是 Python 3.7)版本在 /Users/xxx/.local/share/virtualenvs/ 目录下为当前的 Project 创建一个虚拟环境。

如果你想使用 Python 2,可以使用 pipenv --two 来创建。

或者你想要自己制定 Python 的版本,可以使用 pipenv --python 3.5 来进行创建。

创建完虚拟环境后,会在目录下面生成一个 Pipfile:

$ cat Pipfile
[[source]]

url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"


[dev-packages]



[packages]



[requires]

python_version = "3.7"

在虚拟环境中安装包:

$ pipenv install flask

这会安装 flask 以及相关的依赖包,可以使用 pipenv graph 来查看包的依赖关系:

$ pipenv graph
Flask==0.12.2
  - click [required: >=2.0, installed: 6.7]
  - itsdangerous [required: >=0.21, installed: 0.24]
  - Jinja2 [required: >=2.4, installed: 2.10]
    - MarkupSafe [required: >=0.23, installed: 1.0]
  - Werkzeug [required: >=0.7, installed: 0.14.1]

然后使用 pipenv shell 进入虚拟环境:

$ pipenv shell
Spawning environment shell (/usr/local/bin/fish). Use 'exit' to leave.

这会创建一个新的 shell 进程,不想使用的时候输入 eixt 就可以退出了。

如果进入了一个新的项目,其中有 requirements.txt 或者 Pipfile 的话,运行 pipenv install 会自动为当前的 Project 创建一个虚拟环境并安装相关依赖。

4. 和 fish shell 一起使用

最近开始把 shell 从 zsh 切换到 fish,发现很多东西都不用配置了,比如想要 cd 进项目的时候就直接激活虚拟环境,只需要在 fish 中安装一个 pipenv 的插件就可以了: fisher pipenv 。具体 fish shell 的使用和配置,打算下篇文章详细讲一下。

感觉这篇博客整篇都在灌水……


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构与算法分析

数据结构与算法分析

韦斯(Mark Allen Weiss) / 机械工业出版社 / 2010-8 / 45.00元

《数据结构与算法分析:C语言描述》曾被评为20世纪顶尖的30部计算机著作之一,作者在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评,已被世界500余所大学选作教材。 在《数据结构与算法分析:C语言描述》中,作者精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。 ......一起来看看 《数据结构与算法分析》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具