Python包管理之poetry的使用

  poetry是一个Python虚拟环境和依赖管理的工具,之前用pipenv,最近学习httprunner时,接触了poetry。poetry和pipenv类似,另外还提供了打包和发布的功能。
官方文档:https://python-poetry.org/docs/

安装

macOS或Linux

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


  从文字里可以看到安装路径是: $HOME/.poetry/bin ,红框部分提示了还需要将该目录添加到PATH环境变量下。
macOS10.15后终端使用zsh,对应配置文件是 .zshrc ,之前的版本使用bash,对应终端文件是 .bash_profile

vi .bash_profile

# 文件中添加
export PATH=$PATH:/Users/zhoubihui/.poetry/bin

之后:wq保存退出后,执行source .bash_profile即可

可在终端输入命令: poetry --version 来确认是否安装配置完成。

windows

powershell或cmd中输入:

(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python

Python包管理之poetry的使用_第1张图片
  安装成功后这里有提示,需要将poetry的bin目录添加到PATH路径, %USERPROFILE.poetry\bin 对应是 c:\Users\admin.poetry\bin ,admin对应计算机的用户名,修改环境变量,将这个路径添加到PATH。
Python包管理之poetry的使用_第2张图片
添加之后重开一个命令窗口,可输入 poetry --version 命令来确认。
image.png

基本使用

已有项目添加poetry管理

  poetry可以输入poetry new来创建一个项目脚手架,包括基本结构、pyproject.toml文件,基于每个人的项目目录不同,推荐在已有项目添加poetry管理。
  在已有的项目使用poetry,只需要执行 poetry init 命令来创建一个pyproject.toml文件,可看到有很多提示输入,不确定的内容就先按下Enter使用默认值,后续可以再修改pyproject.toml文件。
  指定依赖的环节也可以跳过,后续再安装会更加高效。
Python包管理之poetry的使用_第3张图片

创建虚拟环境

1、利用 virtualenvs.create=true 自动创建
  当参数 virtualenvs.create=true 时,执行 poetry installpoetry add 时会检测当前项目是否有虚拟环境,没有就自动创建。
Python包管理之poetry的使用_第4张图片
  这里一个问题就是:如果系统中既有Python2又有Python3,且项目既支持Python2也支持Python3,那poetry会优先使用Python2。

2、利用 poetry env use 创建
  这个命令,可以指定创建虚拟环境时使用的Python解释器版本。
image.png
  从提示信息,可以看到使用了Python3.
  使用这个命令后,会在虚拟环境路径下创建一个envs.toml文件,用来存储哪些虚拟环境指定了Python解释器的版本。
Python包管理之poetry的使用_第5张图片

激活虚拟环境

  执行poetry的命令并不需要激活虚拟环境,因为poetry会自动检测当前虚拟环境,如果想在当前目录对应的虚拟环境中执行命令,可以使用以下命令:

poetry run <你的命令>
# 例如: poetry run python flask.py

如果想显示的激活虚拟环境,使用如下命令:

poetry shell

安装依赖

poetry add flask :安装最新稳定版本的flask
poetry add pytest --dev : 指定为开发依赖,会写到pyproject.toml中的[tool.poetry.dev-dependencies]区域
poetry add flask=2.22.0 : 指定具体的版本
poetry install : 安装pyproject.toml文件中的全部依赖
poetry install --no-dev : 只安装非development环境的依赖,一般部署时使用

追踪&更新包

输入 poetry show -h 可以查看poetry show之后可以加什么参数:

Python包管理之poetry的使用_第6张图片

poetry show :查看项目安装的依赖
Python包管理之poetry的使用_第7张图片

poetry show -t :树形结构查看项目安装的依赖
Python包管理之poetry的使用_第8张图片
这里解释下colorama >= 0.4.1,<0.5.0。
  安装某个包时,会在pyproject.toml文件中默认使用版本限定,比如colorama = “^0.4.1” ,当我执行 poetry update 时,colorama也许会更新到0.4.9,但绝不会更新到0.5.0,意思是在更新依赖时不会修改最左边非零的数字号版本,这样的默认设定可以确保不会更新到不兼容变动的版本。

poetry update:更新所有锁定版本的依赖
poetry update httprunner :更新指定的依赖
Python包管理之poetry的使用_第9张图片

卸载依赖

Python包管理之poetry的使用_第10张图片
会将依赖包一起卸载。

查找当前项目的虚拟环境

image.png
加上–full-path,可显示绝对路径。
image.png

删除虚拟环境路径

1、可以直接删除虚拟环境文件夹
2、通过 poetry env -h 查看帮助文档:
Python包管理之poetry的使用_第11张图片
所以执行删除虚拟环境时,指定对应的解析器版本即可。

poetry env remove python2
poetry env remove python3

poetry config配置

config.toml文件

poetry提供了全局config配置和特定项目的config配置。
windows下的全局config配置文件:
Python包管理之poetry的使用_第12张图片
macOS下的全局config配置文件:
Python包管理之poetry的使用_第13张图片
目前poetry支持的参数有:

cache-dir poetry使用的缓存目录的路径
默认值:
macOS: ~/Library/Caches/pypoetry
Windows: C:\Users\Appdata\Local\pypoetry\Cache
Unix: ~/.cache/pypoetry
virtualenvs.create 默认值为true,如果执行 poetry install/poetry add时没有虚拟环境,就自动创建一个虚拟环境,设置为false的话,当虚拟环境不存在时,会将包安装到系统环境** **
virtualenvs.in-project 默认值为false,设置为true的话,会在当前项目目录下创建虚拟环境
virtualenvs.path 虚拟环境的路径,默认路径 {cache-dir}\virtualenvs
repositories. 设置新的备用存储库,具体的参数待确定

所以通过表格也可以确定,poetry config命令: poetry config ,key就是表格内的参数名,value就是参数要配置的值。

poetry confiig

Python包管理之poetry的使用_第14张图片
可以看到 poetry config 之后可以接[–list]、[–unset]、[–local]。

本地参数配置

可以在poetry config后加–local来配置当前项目。

poetry config virtualenvs.create false --local

执行后,当前项目在执行poetry install/poetry add时如果没有虚拟环境的话就会直接安装到系统路径上。
执行后,会在当前项目生成poetry.toml文件:
Python包管理之poetry的使用_第15张图片
image.png
查看全局配置config.toml文件,可以看到不受影响:
Python包管理之poetry的使用_第16张图片

全局配置

poetry config virtualenvs.create false

这里只是示范使用,virtualenvs.create这个参数其实基本不用修改,保留原值就好。

重置配置

poetry config的–unset就是用来重置配置的,如果是重置全局配置:

poetry config virtualenvs.create --unset

Python包管理之poetry的使用_第17张图片
如果是重置项目配置:

poetry config virtualenvs.create --local --unset

查看项目下的poetry.toml文件,可以看到值被重置了。

列出当前配置

列出当前项目的配置可以使用: poetry config --list
image.png
这里需要注意,列出配置时,包括了全局和本地的配置,本地的配置会覆盖全局的参数:
举例:virtualenvs.create全局为true,本地为false,那这里 virtualenvs.create=false
Python包管理之poetry的使用_第18张图片

修改虚拟环境路径

接下来,可以按照自己的文件存放习惯,修改缓存目录,同时也修改了虚拟环境目录:

poetry config cache-dir E:\Documents\Library

Python包管理之poetry的使用_第19张图片

Pycharm中使用poetry创建的虚拟环境路径

1、如果是已有项目,或GitHub拷贝项目,pyproject.toml文件已存在,首先执行poetry install创建虚拟环境并安装全部依赖库,然后再将这个虚拟环境添加到pycharm中:
Python包管理之poetry的使用_第20张图片
image.png
点击齿轮,show all->+
Python包管理之poetry的使用_第21张图片
然后选择前面创建的虚拟环境,比如我这个是:E:\Documents\Library\virtualenvs\httprunner-ih9MoPBn-py3.7\Scripts\python.exe,选中后确定。
Python包管理之poetry的使用_第22张图片

2、如果项目和虚拟环境都没创建,首先创建新的Python项目:
Python包管理之poetry的使用_第23张图片
这里先选择系统的python解释器,创建项目后,执行 poetry init 创建pypoetry.toml文件,然后执行 poetry add poetry install 创建虚拟环境,之后同第一点,添加已经存在的虚拟环境给对应项目就可以了。

Python包管理之poetry的使用_第24张图片

你可能感兴趣的:(包管理,python)