• 包管理神器-pipenv


    一:前言

    介绍一个包管理神器-pipenv,这个工具可以让我们在写代码、创建Python运行环境、package依赖关系以及项目合作的时候更有效率。

    在pycon2018上,Kenneth Reitz介绍的Pipenv在不久就成为了Python官方推荐的包管理工具。下面是pycon2018的链接,推荐大家看看:https://www.bilibili.com/video/av26610021/?p=1。

    二:Python包管理历史

    最初的时候,我们有了Python,但是没有干净的方法来安装软件包,早期的时候,当用户想安装包时,需要先从网上把文件下载下来,解压,然后执行Python setup.py install,就能将包安装好。

    后来有了PyPI,开发者可以把他们的包上传到上面,然后其他开发者可以从这里下载他们需要的包,然后再执行python setup.py install 进行安装,但是这样还是存在许多的问题,比如说:整个过程需要人工,不方便自动化,无法安装多个不同版本等等。

    再后来有了easy_install,当用户想要安装某个包的是否,只要执行easy_install 包名,工具就会自动把包以及依赖下载下来进行安装,这解决了无法自动化的问题,但是这种方法又带来了新的问题,只能安装,却没有方法卸载。

    到了2008年,pip出现了,还引入了requirements files的概念,可以使用户非常方便的复制Python环境。比如说安装某个包,执行pip install 包名,需要卸载,执行pip uninstall 包名,需要批量安装,执行pip install -r requirements.txt。直到现在,pip已经成为非常好用的包管理工具了。pip解决了单个环境下的包管理问题,但是如果我们需要在一台机器上开发多个项目,这多个项目用到了相同包的不同版本,这就成了非常棘手的问题了。

    为了解决这个问题,virtualenv出现了。virtualenv可以为每个项目创建一套隔离的Python环境,再使用pip进行包管理。目前pip+virtualenv是目前比较主流的Python开发流程。慢慢的这种方式也逐渐暴露出了缺点,比如pip的requirements.txt过于简单,没办法表示具体的依赖关系,需要使用两个工具(pip+virtualenv)才能完成工作。

    为了解决这两个问题pipenv登场了,它主要使用pipfile来取代之前的requirements.txt,pipfile比requirements.txt表达能力更强,默认支持两种依赖,可以将多个requirements.txt的内容合并到一起,方便管理,并且通过pipfile.lock对环境进行明确,详细的描述。pipenv可以让你无缝的使用pipfile,pipfile.lock,保证每个依赖的信息都是明确的,它提供简洁的命令操作virtualenv,并且提供很多辅助工具,比如pipenv graph,可以显示项目的完整依赖关系。

    目前Pipenv已经是Python官方推荐的工作流工具了。

    三:Pipenv实操

    目前pycharm2018.2.4版本以上已经支持pipenv了。

    首先打开命令行:输入pip install pipenv 安装pipenv库。

    然后输入:pipenv,如果有如下提示说明安装成功。

    • 接着打开pycharm创建一个项目。

    • 项目创建完成否生成一个pipfile文件,该文件默认的源是国外的,为了增加安装库的速度,我们把源改成清华源:https://pypi.tuna.tsinghua.edu.cn/simple

    下面我们打开pycharm自带的terminal来安装一个简单的模块,检测是否成功。

    在命令行输入:pipenv install requests

     

    如果出现下面提示,说明安装成功。

    如果出现如下错误,说明项目名称包含中文名。

    至此,基本的pipenv环境就搭建好了。

    四:pipenv命令详解

    pip install --user --upgrade pipenv # 用户安装pipenv 
    pipenv --three # 会使用当前系统的Python3创建环境
    pipenv --two # 使用python2创建
    pipenv --python 3.6 指定某一Python版本创建环境
    pipenv run python 文件名 pipenv run pip ...# 运行pip
    pipenv shell 激活虚拟环境
    pipenv --where 显示目录信息
    pipenv --venv 显示虚拟环境信息
    pipenv --py 显示Python解释器信息
    pipenv install requests 安装相关模块并加入到Pipfile
    pipenv install django==1.11 安装固定版本模块并加入到Pipfile
    pipenv graph # 显示依赖图
    pipenv check #检查安全漏洞
    pipenv lock # 生成lockfile
    pipenv update # 更新所有的包
    pipenv --rm # 删除虚拟环境
    pipenv uninstall requests # 卸载包并从Pipfile中移除
    pipenv uninstall --all # 卸载全部包
  • 相关阅读:
    MCU 51-7 I2C Communication EEPROM
    FinalShell(免费的XShell替代品)
    Docker部署Redis
    Docker-Compose部署ELK
    Linux清空文件
    Linux防火墙的操作
    VSCode远程连接Linux服务器
    Apollo分布式配置中心
    SpringBoot整合log4j2
    MySQL区分大小写
  • 原文地址:https://www.cnblogs.com/felixwang2/p/9770519.html
Copyright © 2020-2023  润新知