vlambda博客
学习文章列表

Python界虚拟环境第三把神器,你不知道就out啦!

重磅干货,第一时间送达



众所周知,Python 因为有着强大的第三方包扩展,所以开发应用非常的便捷,但是不同包的版本依赖问题是一个很头痛的问题,为此 Python 出现了各种环境管理工具,通过它们我们可以隔离出一个独立的 Python 环境,也就是不同项目采用不同的环境。


Python 界常见的虚拟环境管理工具有 virtualenv 和 pipenv ,二者各有千秋:

  • virtualenv 不能动态更新 requirements.txt,所以pipenv 诞生了;
  • pipenv 可以看成是 pip+virtualenv 两款工具的合体,它使用 Pipfile 替代原来 requirements.txt 记录依赖包信息 ;
  • pipenv 如何使用可以参考之前写的( )


01.神器poetry

poetry 的依赖处理效果更强大一些。 poetry 在遇到依赖限定条件时,poetry 会尝试找出解决方案,找到可以满足所有相互依赖关系的要求,然后成功安装依赖包。


poetry 卸载包的时候,直接卸载孤立的子依赖,不需要像 pipenv 那样需要再执行 pipenv clean 。


Python界虚拟环境第三把神器,你不知道就out啦!


02.如何安装


poetry 提供了一个自定义安装程序,该安装程序将通过供应其依赖项来安装与系统其余部分隔离。这是官方推荐的 poetry 安装方法。

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

如果不用代理, 执行 curl 指令某些地区可能会很慢。也可以用 pip 安装(不过 poetry 官方文档不建议这么做,因为有可能会造成依赖冲突):

pip install poetry

安装之后可以使用下面指令查看安装是否成功

study_poetry poetry --version
poetry version 1.1.4 # 显示poetry安装的版本


03.poetry 基本配置


1).在已有项目使用 poetry

如果你是在一个已有的项目里使用 poetry,你只需要执行 poetry init 命令来创建一个 pyproject.toml 文件:

poetry init

根据它的提示输入你的项目信息,不确定的内容就按下 Enter 使用默认值,后续也可以手动更新。指定依赖的环节可以跳过,手动安装会更高效一点。

Python界虚拟环境第三把神器,你不知道就out啦!

2).创建一个新的 Python 项目

如果你想创建一个新的 Python 项目,使用 poetry new <项目名称> 命令可以创建一个项目模板:

Python界虚拟环境第三把神器,你不知道就out啦!

3).更换国内镜像源

Python界虚拟环境第三把神器,你不知道就out啦!



04.常见的操作示例


1).安装和卸载Python第三方包

安装第三方包语法和 pipenv 指令类似, 执行 poetry add 包名即可,安装 requests 的指令如下:

Python界虚拟环境第三把神器,你不知道就out啦!

在开发环境下我们要安装 pytest 这样的库,这些在生产环境其实是用不上的,所以没必要记录到 pyproject.toml  中,那么我们在安装某个包的时候加个参数 —dev,表示只安装在开发环境,安装包记录是在[tool.poetry.dev-dependencies]部分。

Python界虚拟环境第三把神器,你不知道就out啦!

在开发环境下我们要安装 pytest 这样的库,这些在生产环境其实是用不上的,所以没必要记录到 pyproject.toml  中,那么我们在安装某个包的时候加个参数 —dev,表示只安装在开发环境,安装包记录是在[tool.poetry.dev-dependencies]部分。

Python界虚拟环境第三把神器,你不知道就out啦!

使用 remove 即可卸载指定的第三方包,例如执行 poetry remove django 卸载 django

Python界虚拟环境第三把神器,你不知道就out啦!


2).查看项目环境所安装的第三方库

执行 poetry show —tree 就会列出你所安装的第三方包的名称、版本信息以及第三方包的简介,还能查看各个库之间的依赖关系。

Python界虚拟环境第三把神器,你不知道就out啦!


3).运行 Python 脚本

切换到项目中 pyproject.toml 同级目录下, 执行 peotry run python 脚本文件即可。

Python界虚拟环境第三把神器,你不知道就out啦!


4).显示虚拟环境信息

执行 poetry env list --full-path 即可查看虚拟环境所在的绝对路径

Python界虚拟环境第三把神器,你不知道就out啦!

执行 peotry env info 查看虚拟环境的详细信息

Python界虚拟环境第三把神器,你不知道就out啦!



05.Pycharm 中使用 poetry 

找到虚拟环境文件夹所在位置,并选中 bin 目录下的 Python 后,就可以用 Pycharm 引入虚拟环境了

Python界虚拟环境第三把神器,你不知道就out啦!


poetry 提供了一套当前最为完善的 Python 依赖包管理解决方案。相对与当前的pip、pipenv具有很多显而易见的优势,如果喜欢尝鲜,可以尝试使用 poetry 替换 pip+virtualenv 或者 pipenv 进行依赖包管理和虚拟环境管理。


有兴趣的小伙伴,可以安装试一下哦!欢迎在留言区点评,吱一声哈!



Python界虚拟环境第三把神器,你不知道就out啦!


爆款文案








每个程序员都是从菜鸟开始成长起来的,没有人生下来就是程序员高手。 菜鸟编程大本营,专注于分享趣味的编程技巧,不限于Java, Python ,Go, Javascript等语言,让菜鸟爱上编程,进阶成为高手。


               
                 
                 
               
                  
                    
                    
                  
                    
                      
                      
                    
                          
                            
                            
                          
                              
                                
                                
                              
菜鸟编程本营,从菜鸟进阶高手

                               
                                 
                                 
                               
                                    
                                      
                                      
                                    
                                          
                                            
                                            
                                          
点这里,获取新手福利