zoukankan      html  css  js  c++  java
  • Python--pipenv

    一、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了。
    1.首先打开命令行:输入pip install pipenv 安装pipenv库。
    2.pycharm配置。
     
    三、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 # 卸载全部包
     

  • 相关阅读:
    tyvj1061Mobile Service
    POJ3666序列最小差值
    POJ2279杨氏矩阵+钩子定理
    POJ2127 LICS模板
    codevs2189数字三角形(%100)
    qhfl-7 结算中心
    qhfl-6 购物车
    qhfl-5 redis 简单操作
    qhfl-4 注册-登录-认证
    qhfl-3 Course模块
  • 原文地址:https://www.cnblogs.com/absoluteli/p/14090321.html
Copyright © 2011-2022 走看看