其他分享
首页 > 其他分享> > pipenv的安装和使用

pipenv的安装和使用

作者:互联网

pipenv的安装和使用

参考:

Pipenv使用入门 - 简书 (jianshu.com)

介绍

pipenv官方文档

Python的虚拟环境管理工具:最常用的便是virtualenv,virtualenvwrapper,pipenv这几种虚拟环境的管理都是基于virtualenv,只是做了不同的封装,达到了更好的效果。

  • virtualenv ,此工具会在项目目录下创建一个文件夹,名字叫做virtualenv_name,此目录下会包含python拷贝,之后所有的依赖都会保存至此目录中,在虚拟环境激活状态下,可以安装所需的依赖包,安装的依赖包会保存至项目虚拟环境目录virtualenv_name 下,不会污染系统全局环境;
    • 缺点:
      • 可能需要手动安装/删除某些特定版本的包
      • 要定期更新 requirements.txt,保持项目环境的一致性
      • 会保留两个版本 requirements.txt,一个用于开发,一个用于生产环境,导致更多复杂性
  • virtualenvwrapper ,virtualenvwrapper是对virtualenv接口的封装。virtualenvwrapper会将虚拟环境的目录统一保存,不需手动管理,使用起来更加便利;
  • pipenv ,pipenv是Kenneth Reitz在2017年1月发布的Python依赖管理工具,现在由PyPA维护。你可以把它看做是pip和virtualenv的组合体,而它基于的Pipfile则用来替代旧的依赖记录方式(requirements.txt),pipenv 在易用性上要简单很多,同时增加了 lock 文件,能更好的锁定版本。如果没有特殊要求可以 pipenv 直接使用 lock 的版本,开发又可以小步迭代,实现依赖的稳步升级。
    • 实现同时管理项目中的python虚拟环境和相关包依赖

pipenv的优势

  • pipenv会在项目目录下创建 PipfilePipfile.lock 文件,管理包之间的依赖关系,以前我们需要将虚拟环境依赖包的导出为requirements.txt, 一旦依赖包变动,就要重新导出,现在Pipfile和Pipfile.lock文件可以节省这些步骤,更方便地管理;
  • 安装卸载包无需激活虚拟环境直接在项目文件夹下操作
  • 卸载时,自动检查依赖库是否被其他包依赖,来选择是否彻底删除。
  • 无需激活虚拟环境执行代码,只要有pipfile文件通过 pipenv run python xx.py
  • 便于docker容器化管理,Pipfile文件支持生成requirements文件,便于项目代码docker化管理,另外,pipfile还支持–dev环境,可以在调试阶段安装许多调试工具等,而不影响生产环境的环境。
  • 各个地方使用了哈希校验,无论安装还是卸载包都十分安全,且会自动公开安全漏洞。
  • 通过加载.env文件简化开发工作流程

安装

Anaconda Prompt 或者 cmd 输入 -> pip install pipenv

检测安装是否成功:pipenv --version

预览一下pipenv的用法 pipenv --help

创建环境

  1. 创建环境 pipenv install & pipenv shell 【直接在地址行输入cmd 或者 pipenv shell】

    使用pipenv install & pipenv shell 区别

    pipenv install需要在DOS界面下操作,在命令提示符前面显示虚拟环境名字后,才算进入环境

    pip shell可以在地址行直接输入,激活anaconda的pipenv工具,一步到位进入虚拟环境,没有anaconda时可能不能用

    (WeiBoImageCrawling-rDB0ue93) F:\Ccode\WeiBoImageCrawling>pipenv install
    Creating a virtualenv for this project…
    Pipfile: F:\Ccode\WeiBoImageCrawling\Pipfile
    Using C:/Users/流年/AppData/Local/Programs/Python/Python37-32/python.exe (3.7.4) to create virtualenv…
    [    ] Creating virtual environment...created virtual environment CPython3.7.4.final.0-32 in 2272ms
      creator CPython3Windows(dest=C:\Users\流年\.virtualenvs\WeiBoImageCrawling-rDB0ue93, clear=False, global=False)
      seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\流年\A
    ppData\Local\pypa\virtualenv)
        added seed packages: pip==20.2.4, setuptools==50.3.2, wheel==0.36.2
      activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
    
    Successfully created virtual environment!
    Virtualenv location: C:\Users\流年\.virtualenvs\WeiBoImageCrawling-rDB0ue93
    Installing dependencies from Pipfile.lock (a65489)…
      ================================ 0/0 - 00:00:00
    
    
    • 上述命令会生成PipfilePipfile.lock,自动生成一个随机的虚拟环境目录名[项目名称+随机字符]。

      • Pipfile:用于保存项目的python版本、依赖包等相关信息

        Pipfile文件可以单独移放到其他项目内,用于项目虚拟环境的建立和依赖包的安装

      • Pipfile.lock:用于对Pipfile的锁定

    • pipenv install

      Pipfile 文件

      • 目录中存在,根据这个Pipfile生成虚拟环境。

      • 目录中不存在,该命令将创建一个 Pipfile 文件。

      若项目目录中虚拟环境已创建且有Pipfile文件,将根据Pipfile文件来安装依赖包

    • windows下执行命令,生成的虚拟环境在C:\Users\用户名.virtualenvs文件夹下

    • 一般虚拟环境目录名:创建环境时所在的项目目录名 + 随机字符串,eg:myblog-Gtn4e1q9

    解析pipfile文件

    [[source]]
    name = "pypi"
    url = "https://pypi.org/simple"
    verify_ssl = true
    
    [dev-packages]
    
    [packages]
    
    [requires]
    python_version = "3.7"
    
    [scripts]
    test = "python3 -m unittest discover -s ./tests"
    dev = "python3 manage.py runserver 0.0.0.0:8000"
    
    
    • source用来设置仓库地址,即从哪下载虚拟环境所需要的包

      • 可手动修改url为,为自己想用的源
    • packages用来指定项目依赖的包,可以用于生产环境和生成requirements文件

    • dev-packages用来指定开发环境需要的包,这类包只用于开发过程,不用与生产环境,比如单元测试相关的包,只在开发阶段有用,这样分开便于管理。安装调试工具、性能测试工具、python语法工具

    • requires 中指定目标Python版本

    • [scripts]添加自定义的脚本命令,并通过 pipenv run 的方式在虚拟环境中执行对应的命令:

      pipenv run test 相当于执行 pipenv run python3 -m unittest discover -s ./tests

      pipenv run dev 相当于pipenv run python3 manage.py runserver 0.0.0.0:8000

    解析pipfile.look文件

    • Pipfile.lock中记录了当前虚拟环境中安装的依赖的版本号以及哈希,以保证每次根据这些值装出来的依赖都是一致的,该文件用来保证包的完整性。记住,任何情况下不要手动修改该文件!

    • 项目提交时,可将Pipfile 文件和Pipfile.lock文件一并提交,给其他开发人员克隆下载,他们可以根据此Pipfile文件运行命令pipenv install生成自己的虚拟环境。

    指定虚拟环境 Python版本

    pipenv --python 3.6 #指定使用Python3.6的虚拟环境
    pipenv --two        #使用系统的Python2在创建虚拟环境
    pipenv --three      #使用系统的Python3在创建虚拟环境
    
    #注意:以上三个参数只能单独使用。它们还具有破坏性,会删除当前的虚拟环境,然后用适当版本的虚拟环境替代。
    
    • 当给定了一个Python版本的时候,Pipenv会自动扫描系统中能够匹配给定的Python版本的Python解释器,没指定版本时,使用系统默认的Python版本。

    虚拟环境中运行代码

    1. 激活环境 pipenv shell

      • 创建环境后会自动进入到虚拟环境中,当退出虚拟环境重新进入到虚拟环境则需要执行以上命令

      • 执行完命令,命令提示符前出现了如**(TestPipenv-tmf99lpc)**的虚拟环境的名字,代表进入了虚拟环境

      • 虚拟环境中的,python版本、pip、第三方库,都不会与系统中的库冲突

    2. 在虚拟环境中运行代码项目 python xxx.py eg:

      (WeiBoImageCrawling-rDB0ue93) F:\Ccode\WeiBoImageCrawling>python xxx.py
      xxx.py 运行...
      
    3. 不进入虚拟环境的情况下使用虚拟环境运行代码,可以使用pipenv run python xxx.py命令,eg:

      F:\Ccode\WeiBoImageCrawling>pipenv run python xxx.py
      xxx.py 运行...
      

pipenv 管理Python包

pyinstaller打包生成 .exe

兼容virtualenv

pipenv install语法与pip install完全兼容

pip的基本使用

pip install <包名> 						#安装,自动下载到Python的Lib>site-packages目录
pip uninstall <包名>						#卸载
pip freeze								 #查看已安装的包及其版本
pip list -o			   					 #查看可升级的包
pip install -U <包名>					    #升级指定包
python -m pip install --upgrade pip 	 #升级pip

标签:pipenv,--,lock,虚拟环境,install,使用,Pipfile,安装
来源: https://blog.csdn.net/lwww3333/article/details/119292678