一篇学会 Pipenv 使用

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

简介

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

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

使用 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.  
  6. [packages] 
  7. numpy = "==1.21.5" 
  8.  
  9. [dev-packages] 
  10.  
  11. [requires] 
  12. python_version = "3.8" 
  • source 用来设置仓库地址,即从哪下载虚拟环境所需要的包
  • packages 用来指定项目依赖的包,即你安装了的包
  • dev-packages 用来指定开发环境需要的包,这类包只用于开发过程,不用与生产环境,比如单元测试相关的包,只在开发阶段有用,这样分开便于管理。
  • requires 中指定目标 Python 版本

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

pipenv 常规命令如下:

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

 

责任编辑:武晓燕 来源: 懒编程
相关推荐

2022-02-07 11:01:23

ZooKeeper

2021-12-28 07:20:43

Hippo WebAssembly云原生

2022-01-12 07:36:01

Java数据ByteBuffer

2021-10-15 09:55:48

Myloader数据教程

2023-11-29 13:59:00

trait定义接口

2022-01-01 20:02:25

Metadata动态元数据

2022-04-12 08:30:52

回调函数代码调试

2021-10-27 09:59:35

存储

2021-07-16 22:43:10

Go并发Golang

2021-09-28 08:59:30

复原IP地址

2023-11-01 09:07:01

Spring装配源码

2021-07-02 08:51:29

源码参数Thread

2023-03-13 21:38:08

TCP数据IP地址

2022-10-20 07:39:26

2021-10-29 07:35:32

Linux 命令系统

2022-03-11 10:21:30

IO系统日志

2022-11-14 08:17:56

2021-10-14 10:22:19

逃逸JVM性能

2021-04-29 10:18:18

循环依赖数组

2021-05-11 08:54:59

建造者模式设计
点赞
收藏

51CTO技术栈公众号