当前位置: 首页 > 科技观察

Python包管理工具Pipenv

时间:2023-03-11 21:58:38 科技观察

前言在传统的成熟方案中,为了避免包版本管理的混乱,我们通常会依赖当前Python版本创建一个虚拟环境,在虚拟环境中使用pip进行包管理.现在有一个好用的工具pipenv可以帮助我们更方便的管理包。1.什么是pipenv,它有什么作用?pipenv是一个Python包管理工具。它是requests的作者KennethReitz的作品,提供了Python各个版本之间的管理,各种包的管理。当你开始熟悉和使用它的时候,你就会知道它有点类似于前端的npm和yarn。它自动为项目创建和管理虚拟环境。当你使用pipenv时,它会在项目的根目录下创建一个Pipfile来记录包的版本信息。当你使用pipenv安装包时,它会在项目根目录下生成一个Pipfile.lock文件来锁定安装包的版本和依赖信息,避免构建错误。主要解决以下问题:无需根据当前Python解释器版本单独创建和使用virtualenv和pip工具。维护requirements.txt文件乱序,改用Pipfile和Pipfile.lock。基本概念:在新建项目根目录下执行pipenvinstall,会自动创建虚拟环境并生成Pipfile。当install命令不传参数指定安装包时,如果当前Pipfile存在,则自动安装Pipfile中[packages]中的所有包。2.安装pipenv#MacOS下pipinstallpipenv#Shell命令补全echo'eval"$(pipenv--completion)"'>>~/.zshrc#Centos7下步骤相同,只需要将~/.zshrc到/etc/profile或者其他环境变量文件就可以了。3、pipenv优缺点优点:自动关联项目相关的virtualenv,可以快速加载virtualenv。提供的pipenv替换了pip,并附带了一个依赖列表Pipfile和一个依赖锁Pipfile.lock。除了依赖列表,Pipfile还支持固定pypi源地址和固定python版本。Pipfile还支持开发依赖列表。pipenvinstall的包会强制使用Pipfile中的源。使用pipenvgraph命令查看依赖树。可以直接在python2和python3之间切换。缺点:Windows下命令行终端开头没有venv名称,不知道自己是否在虚拟环境中,容易误用。在Pipfile中永久设置源后,在Pipfile中看到的还是官方源,但实际上你设置的源已经没有了。4.使用pipenv创建pipenv虚拟环境#创建项目目录mkdirproject1cdproject1#创建虚拟环境可以指定Python版本pipenv--python3.10.4#由于项目是新建的,所以会自动生成Pipfile和pipfile.lock文件pipenvinstall#不进入虚拟环境执行命令。默认只有下面几个包,和使用virtualenv时一样$pipenvrunpiplistPackageVersion--------------pip21.3.1setuptools59.6.0wheel0.37。1#激活虚拟环境pipenvshell#安装包pipenvinstallrequests#查看包pipenvgraph的依赖关系#升级某个包pipenvupdaterequests#退出虚拟环境exit#删除虚拟环境。删除虚拟环境不会删除项目目录,只是删除虚拟环境的目录pipenv--rm5.团队共享如果你现在在团队中分享你的项目,比如A需要你的项目,他下载了项目在本地,然后运行??项目先安装依赖包,那么依赖包怎么解决呢?mkdirproject2cdproject2#然后把Pipfile和Pipfile.lock文件拷贝到这个目录下,执行下面的命令pipenvinstall安装你项目需要的所有依赖。6.如何在PyCharm中使用Pipenv首先设置你的环境变量。vi~/.zshrc#pythonpipenvexportPATH="$PATH:/Users/allenjol/.local/">>~/.zshrcsource~/.zshrc打开pycharm,新建一个工程,Newenvironmentusing选择Pipenv,创建完成后就完成了进入Pipenv的环境。