一篇学会 Pipenv 使用

时间:2022-11-25 14:04:24

一篇学会 Pipenv 使用

简介

为了避免污染系统环境下的 Python,我们在利用 Python 开发项目时,通常会在项目的根目录创建 python 虚拟环境。

阅读官网文档,python3.6 + 以上,python 自带了 venv 命令可以快速构建虚拟环境,你只需在 Google 中搜索【python3.x venv docs】便可以搜索到对应版本 Python 下,venv 的使用文档。

一篇学会 Pipenv 使用

使用 venv 创建虚拟环境:

  1. python -m venv venv

这种方式有个问题就是无法创建不同版本的 Python 虚拟环境,比如我系统中只有 python3.7,就无法创建 python3.8 的虚拟环境。

这也是我目前遇到的问题,一些比较新的项目,其要求 python3.8+,而我系统只有 python3.7,此时就需要使用 pipenv 了,先安装一下:

  1. pip install pipenv

pipenv 基本使用

pipenv 用法比较多,我琢磨了一下,要用好 pipenv,了解起概念和基本用法就好了。

最基本的命令便是创建不同 Python 版本的虚拟环境。

在项目根目录下,运行下面 pipenv 命令:

  1. pipenv --python 3.8.8

pipenv 会扫描系统中相应的位置,判断 python3.8.8 是否已经有了,如果没有,则自动下载 python3.8.8 并为项目创建 python3.8.8 版本的虚拟环境。

此外,还有一个知识点:

如果项目根目录中有 Pipfile,怎创建虚拟环境时,会根据 Pipfile 中的信息生成虚拟环境,比如安装相应的第三方库,如果没有,怎以默认的形式去生成虚拟环境,然后创建 Pipfile,通过 VsCode 打开 Pipfile,其形式如下:

  1. [[source]]
  2. url = "https://pypi.org/simple"
  3. verify_ssl = true
  4. name = "pypi"
  5. [packages]
  6. numpy = "==1.21.5"
  7. [dev-packages]
  8. [requires]
  9. python_version = "3.8"
  • source 用来设置仓库地址,即从哪下载虚拟环境所需要的包
  • packages 用来指定项目依赖的包,即你安装了的包
  • dev-packages 用来指定开发环境需要的包,这类包只用于开发过程,不用与生产环境,比如单元测试相关的包,只在开发阶段有用,这样分开便于管理。
  • requires 中指定目标 Python 版本

pipenv 会默认将虚拟环境安装在 ~/.virtualenvs 中,通过 pipenv --venv 可以直接查看当前项目虚拟环境的路径,如果我们需要使用 PyCharm 编写项目时,可以根据这个目录,直接在 PyCharm 中设置使用该虚拟环境:

一篇学会 Pipenv 使用

pipenv 常规命令如下:

  1. # 安装命令
  2. pipenv install requests #在项目所在虚拟环境中安装requests
  3. pipenv install parsel==1.3.1 #安装parsel并指定其版本
  4. pipenv install --dev nose2 #安装nose2包并将其关联为只在开发环境中需要的包
  5. # 卸载命令
  6. pipenv uninstall requests #在项目所在虚拟环境中卸载requests
  7. pipenv uninstall --all #从虚拟环境中移除所有已安装的包,但Pipfile.lock文件不受影响
  8. pipenv uninstall --all--dev #从虚拟环境中卸载所有开发包,并从Pipfile文件中移除这些包
  9. # 更新命令
  10. pipenv update requests #在项目中更新requests包
  11. pipenv update #更新项目中所有的包
  12. pipenv update --outdated #查看现有包哪些已经过期
  13. #查看命令
  14. pipenv graph #显示现有的依赖包
  15. pipenv lock #更新Pipfile.lock文件锁定当前环境的依赖版本

pipenv shell

在我现在的工作流中,除了使用 pipenv 创建虚拟环境后,pipenv 其他命令都不太使用,因为已经比较熟悉 pip 命令了,不想再去背 pipenv 的命令。

当 pipenv 创建完虚拟环境后,我会通过 pipenv shell,在当前 terminal 中激活虚拟环境,然后直接在其中使用 pip,这样,从 venv 换成 pipenv 几乎没有任何切换成本了,具体的流程为:

  1. pipenv --python 3.8.8
  2. pipenv shell
  3. pip install requests

结尾

好啦,关于 pipenv 了解到这个程度就够用了,至于其他的细节,没遇到问题就不深入研究了,考虑投入产出比嘛。

参考文章:

Pipenv 使用入门

原文链接:https://mp.weixin.qq.com/s/snpgGS2sgnpq0B4vKz47nw