pipenv—不可不知的python包管理利器
admin
2023-07-20 21:42:04
0次

一 前言

最近我们的檀神在学习python时提了一个很好的问题,让我觉得有必要把它梳理下分享给更多的学习者。剧情回顾:檀神安装了python3的版本,想在我16年基于python2写的工具的基础上增加功能,但发现工具的一个模块还不支持python3。这就尴尬了,是要重装python2的版本?还是用python3的模块重写工具?不管哪种方式,似乎都挺折腾。其实,这只是python版本管理、包管理领域的一个问题缩影,也是本文介绍pipenv的原因。

提起python包管理,pythoner们会毫不犹豫的说出pip, easy_install;提起python虚拟开发环境,又会异口同声的答出virtualenv, pyvenv。是的,他们都是非常优秀、高效的管理工具,但本文要提的是另一款利器pipenv,也是python官方推荐的包管理工具,它出自Kenneth Reitz之手。提起这位老兄,称他为python领域最伟大的工程师、天才程序员,一点不为过,响当当的Requests就是他的杰作,又精通摄影,标准的斜杠青年。

二 简介

Pipenv ,全称为Python Development Workflow for Humans,旨在为开发项目自动创建和管理虚拟环境并管理 Python 包,简言之,就是virtualenv 和pip的集合体,通过创建指定python版本的虚拟环境和安装依赖包,提供各个项目隔离的开发环境。

引用官方的话说,使用pipenv可以解决如下问题:

  1. 我们不需要在单独使用pip和virtualenv,pipenv集合了二者功能;

  2. 使用 requirements.txt 可能会有问题,所以pipenv 使用 pipfile 和 pipfile.lock,如果pipfile不存在就自动创建,而且在安装、升级、移除依赖包的时候会自动更新 pipfile 和 pipfile.lock 文件;

  3. 广泛使用 Hash 校验,保证安全性;

  4. 调用 pipenv graph 可以清晰地查看 Python 包及其关系;

  5. 可通过自动加载 .env 读取环境变量,简化开发流程;

那pipfile和pipfile.lock又是什么作用呢?

pipfile 的作用类似 requirements.txt,用于标识该项目依赖包的基本信息,还区分了生产环境和开发环境的包标识。pipfile.lock 详细标识了该项目安装的包的精确版本信息、最新可用版本信息和当前库文件的 hash 值,起到版本锁定的作用。即,如果项目部署到其他地方,通过该文件安装指定的版本,而不是默认的安装最新版本,避免一些库因版本更新导致的不兼容问题。

三 安装

本文简单介绍在windows平台pipenv的安装和使用方法,可以使用pip直接安装,作者使用python3版本,对应的是pip3,所以安装命令如下:

pip3 install pipenv

使用如下命令如果输出版本信息,也说明安装成功:

pipenv –version

四 使用

假如我们想使用selenium2的版本,但目前环境已经安装了selenium3版本,现在用pipenv创建一个虚拟环境,在该环境里安装selenium2。这样,既可以满足开发要求,又不至于卸载重装本机环境的包版本。
1. 查看本机环境版本,如下命令:

pip show selenium

输出显示如下:

Name: selenium
Version: 3.14.0
Summary: Python bindings for Selenium
Home-page: https://github.com/SeleniumHQ/selenium/

2.    创建项目目录,并创建虚拟环境:
项目目录创建好后,用如下命令验证是否创建虚拟环境:

pipenv --venv

输出如下:

No virtualenv has been created for this project yet!

说明当前项目目录没有创建虚拟化环境,用如下命令创建环境:

pipenv --three 或 pipenv -- two

其中,three代表创建python3环境,two代表创建python2环境,或用–python指定特定的python版本,但前提是都要提前安装好python。
执行创建虚拟环境命令后,输出如下:

Using D:\Program Files (x86)\python36\python.exe (3.6.3) to create virtualenv...
Running virtualenv with interpreter D:\Program Files (x86)\python36\python.exe
Using base prefix 'D:\\Program Files (x86)\\python36'
New python executable in C:\Users\dell\.virtualenvs\Test-gftU5mTd\Scripts\python.exe
Installing setuptools, pip, wheel...done.

说明环境创建成功,使用python3.6.3的解释器。

3.    切换到虚拟环境
切换环境的命令如下:

pipenv shell

输出如下:

Launching subshell in virtual environment…
Microsoft Windows [版本 10.0.15063]
(c) 2017 Microsoft Corporation。保留所有权利。

(Test-gftU5mTd) E:\Test>

路径前的(Test-gftU5mTd)标识已经切换到虚拟环境了。

4.    在虚拟环境安装selenium2
因为本地环境已经安装了selenium3,我们使用如下命令可以在虚拟环境安装selenium2.53.0,如下:

pipenv install selenium==2.53.0

输出如下:

Installing selenium==2.53.0...
Collecting selenium==2.53.0
  Downloading https://files.pythonhosted.org/packages/c6/3c/b07ce83ed5a62b2eb8dd4c48f3f293197f70d63e537be14ec5d2bd328cc9/selenium-2.53.0.tar.gz (815kB)
Building wheels for collected packages: selenium
  Running setup.py bdist_wheel for selenium: started
  Running setup.py bdist_wheel for selenium: finished with status 'done'
  Stored in directory: C:/Users/dell/AppData/Local/pipenv/pipenv/Cache\wheels\a1\39\2e\c6a5d4e01e1a906d7fa2563b255202de2b9ca1b7cfea81b875
Successfully built selenium
Installing collected packages: selenium
Successfully installed selenium-2.53.0

由此可知,虚拟环境已安装了selenium2,且与本地的开发环境是隔离的,其他包安装方法相同,不在赘述。

5.    退出虚拟环境
虚拟环境使用完毕,用exit即可退出,虚拟环境安装的包与外部环境是隔离的,所以,不用担心包版本引起的问题。

五 总结

本文由具体问题引出了对pipenv的介绍,作为pip和virtualenv的结合体,可以方便地创建和管理 Python 虚拟环境、管理 Python 包。使用它可以轻松解决多版本、多环境的问题,值得推荐和学习。

六 其他资源

关于python学习、分享、交流,笔者开通了微信公众号【小蟒社区】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学python。


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...