Python包管理工具之Pipenv

开发 开发工具
如果现在在团队中共享你的项目,比如人员A需要你的项目,他下载项目到本地了,那么运行项目首先安装依赖包,那依赖包怎么解决呢?

​前言

传统的成熟方案中,我们为了避免包版本的管理混乱,通常我们是依赖于当前的Python版本创建一个虚拟环境,并在虚拟环境中使用pip进行包管理。现在有一个好用的工具叫pipenv来帮助我们更方便的管理包。

一、pipenv是什么以及它有什么作用?

pipenv是一个Python的包管理工具。它是requests作者Kenneth Reitz的作品,提供Python的各个版本间的管理,各种包管理。当你开始熟悉并且使用它的时候,你就知道它有点类似于前端的npm和yarn的味道。

它能自动为项目创建和管理虚拟环境。当你使用pipenv的时候,他会在项目根目录下创建Pipfile,用于记录包的版本信息。当你使用pipenv来安装包的时候,它会在项目根目录生成Pipfile.lock文件来锁定安装包的版本和依赖信息,避免构建错误。

它主要解决了以下几个问题:

  • 不需要基于当前的Python解释器版本单独的创建使用virtualenv和pip工具。
  • 无序维护requirements.txt文件,使用Pipfile和Pipfile.lock来代替。

基本概念:

  • 在一个新的项目根目录下执行 pipenv install,则他会自动创建一个虚拟环境,并且生成一个Pipfile文件。
  • 当 install 命令没有传递参数指定安装包,如果当前存在Pipfile,则会自动安装所有Pipfile中的[packages]中的包。

二、安装pipenv

# MacOS下
pip install pipenv
# shell命令补全
echo 'eval "$(pipenv --completion)"' >> ~/.zshrc
# Centos7下步骤一样,只需要将~/.zshrc改成 /etc/profile或者其他环境变量文件即可

三、pipenv优缺点

优点:

  • 自动关联项目相关的 virtualenv,能够快速的加载 virtualenv 。
  • 提供的pipenv替代pip并自带一个依赖清单Pipfile,和依赖锁定Pipfile.lock。
  • Pipfile除了依赖清单还支持固定pypi源地址,固定python版本。
  • Pipfile还支持dev依赖清单.pipenv install的包会强制使用Pipfile中的源.
  • 使用pipenv graph命令可以看到依赖树。
  • 可以直接切换python2和python3。

缺点:

  • Windows下命令行终端开头没有没有venv的名称,让你不知道是否在虚拟环境中,容易误操作。
  • 永久设置了Pipfile文件中的源以后,Pipfile文件中看到的还是官方源,但是实际上是已经走了你设置的源了。

四、使用pipenv

创建pipenv虚拟环境

# 创建项目目录
mkdir project1
cd project1
# 可以指定Python版本来创建虚拟环境
pipenv --python 3.10.4
# 由于项目是新建的,所以会自动生成Pipfile和Pipfile.lock文件
pipenv install
# 不进入虚拟环境执行命令,默认只有以下这几个包,和用virtualenv中时一样的
$ pipenv run pip list
Package Version
---------- -------
pip 21.3.1
setuptools 59.6.0
wheel 0.37.1
# 激活虚拟环境
pipenv shell
# 安装包
pipenv install requests
# 查看包的依赖关系
pipenv graph
# 升级某一个包
pipenv update requests
# 退出虚拟环境
exit
# 删除虚拟环境。删除虚拟环境不会删除项目目录,只是删除虚拟环境的目录
pipenv --rm

五、团队共享

如果现在在团队中共享你的项目,比如人员A需要你的项目,他下载项目到本地了,那么运行项目首先安装依赖包,那依赖包怎么解决呢?

mkdir project2
cd project2
# 然后拷贝Pipfile和Pipfile.lock文件到这个目录下,执行以下命令
pipenv install

这样就安装了所有你项目需要的依赖包了。

六、PyCharm中怎么使用Pipenv

首先设置一下你的环境变量。

vi ~/.zshrc
# python pipenv
export PATH="$PATH:/Users/allenjol/.local/" >> ~/.zshrc
source ~/.zshrc

打开pycharm,创建一个项目,New environment using选择Pipenv,创建完成后就进入了Pipenv的环境了。

责任编辑:武晓燕 来源: 运维开发故事
相关推荐

2022-07-01 09:17:14

Pythonpoetry工具

2022-08-03 08:02:46

PDM工具Python

2022-02-07 23:03:07

Python工具管理库

2022-05-09 19:19:36

Pnpm管理工具

2013-10-21 10:01:04

编码工具扩展

2010-02-23 17:21:06

Fedora yum

2011-08-12 10:38:09

MongoDB

2012-04-09 09:43:49

云计算云管理

2024-03-05 08:30:13

RustPython工具

2022-06-15 15:09:48

管理工具

2015-09-14 16:12:23

命令DNFLinux

2009-04-24 21:13:45

服务器虚拟化Vmware

2020-09-30 14:05:22

网络管理

2012-12-06 11:31:40

虚拟化

2020-10-30 11:18:47

网络技术工具

2023-08-04 00:06:34

2022-08-10 16:44:08

Linux

2012-02-22 13:36:43

云计算

2021-03-17 10:29:35

systemdLinux管理工具

2015-12-29 10:24:19

管理工具集群管理
点赞
收藏

51CTO技术栈公众号