Python 写起来很快也很舒服,但是有一个非常致命的问题,也可能就是这个便捷带来的问题,那就是各版本库升级非常快,并且之后的版本不一定兼容上一代版本。
除了Python2 于 Python3 之间主体差别外,第三方库的问题更让人头疼。最最让人难受的是,如果你用的 Linux 系统,很多 Python 软件包你除了可以使用 Pip 安装外,还可以使用自带的包管理器来安装,并且当自带的包管理器在升级处理依赖的时候,只会检测到已经存在文件,不能自动处理,从而导致升级安装失败,非常难受。
之前也有许多虚拟环境管理器,比如 Virtualenv 等,不过之前用的也少,也没太多痛点。碰到几次上边的问题后才痛下决心要尽可能的使用虚拟环境,系统库里要尽可能少的装包。
网上看了下,现在大家都比较推荐 Pipenv ,这个库的作者和 Requests 库的作者是同一个人,不用多想,文档里一定会有 – Pipenv 最适合人类使用的依赖管理库……
按照我个人理解,Pipenv 故名思意,除了具有虚拟环境管理的功能外还有 Pip包管理的功能,相当于两者合二为一了。
先说安装,包管理器或者 pip 都可以,还是用 Pip 吧 :)
pip install pipenv
创建虚拟环境
pipenv --python 3.6 创建指定的 Python 环境,也可以通过 pipenv--two / three来创建出自己系统上已经安装的 Python 虚拟环境。
还可以通过 pipenv install来隐式的创建,Python 环境会是你系统默认环境,同时如果你这个目录里如果有 Pipfile
(一个以安装库的描述文件)文件的话,他会默认来安装上所有的库,非常方便。
再说删除,对应项目目录下执行
pipenv --rm
也可以通过执行
pipenv --venv 查看虚拟环境的位置
或是
pipenv --where 查看对应项目目录的信息
通过
pipenv shell 可以进入虚拟环境子 shell ,exit便可以退出,异常方便。
至于 Pipfile.lock 从官方文档来看,是一个对版本库的依赖描述,可能是我最近操作系统看多了,总觉的是一把锁……
里面是一些库的信息,包括软件版本 hash 等等。
只是一些最基本的使用,具体还要看官方文档
参考链接: