最近python的ui自动化工程中需要调研和选取一个python第三方包的依赖管理工具,近期poetry比较火,就选择了这个新的工具,以下来介绍Python环境管理Poetry的使用。
Poetry 是 Python 中依赖管理和打包的工具。他可以管理项目中的第三包的依赖(安装/更新)。同时也提供了一个锁定文件以确保可重复安装,并且可以构建项目以供分发。 poetry的Python版本要求为 3.7+,且是多平台的。
Poetry官网:https://python-poetry.org/docs/
Windows (Powershell)
Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
根据官网安装的提示:如果是在Microsoft Store上安装的python,需要将上面的py替换为python,但是我直接安装,提示 py : 无法将“py”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。必须要把py替换为python。
Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
使用 poetry --version 检查版本, 如果提示版本号则安装成功。
安装后默认的缓存路径个虚拟环境路径在:
C:\Users\
# 此处直接修改 cache-dir 就会修改 cache-dir 和 virtualenvs.path 的路径 poetry config cache-dir D:\\poetry_enev1.2. 通过 poetry config --list 查看已经修改成功 取消之前的修改: poetry config cache-dir --unset
mac安装 brew intall poetry
2 使用poetry创建一个新项目
2.1 直接使用poetry 创建项目
poetry new project_name 自动创建一个project_name的文件件,项目名称也叫做project_name。 2.2 添加python依赖 # 在pyproject.toml 同目录下 poetry add numpy=1.2 安装的包和版本都会在 pyproject.toml 中
[tool.poetry.dependencies] python = "^3.9" numpy = "^1.24.2"
2.3追踪&更新包 输入 poetry show -h 可以查看poetry show之后可以加什么参数:
编辑切换为居中
添加图片注释,不超过 140 字(可选)
poetry show :查看项目安装的依赖
编辑切换为居中
添加图片注释,不超过 140 字(可选)
poetry show -t :树形结构查看项目安装的依赖
编辑切换为居中
添加图片注释,不超过 140 字(可选)
这里解释下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 :更新指定的依赖 2.4卸载依赖
编辑
添加图片注释,不超过 140 字(可选)
2.5 运行项目或者文件
poetry run python run.py
备注:本地调试main函数也是用这个方法,run.py替换成你想调试的py文件
3 在现有项目中使用poetry
3.1 在某个目录下 使用poetry init
poetry init 使用这种交互式的方式创建项目,根据选项设置完成之后,在对应的目录下同样会生成 pyproject.toml 文件。
4 拿到一个使用poetry管理依赖的新项目
4.1 在pyproject.toml同目录下 poetry install Tips: 使用poetry时会生成 poetry.lock,此文件推荐上传到git版本控制中
5 手动管理依赖
5.1 在 pyproject.toml文件同目录下,进入虚拟环境 poetry shell 使用此命令,进入当前的项目虚拟环境,接下来就像平常使用python一样了。 5.2 退出 deactivate # 或者直接退出 这个是shell
6 管理环境
6.1 获取当前的虚拟环境的基本信息 poetry env info
6.2 切换虚拟环境 poetry env use 具体的环境的 python 可执行文件路径
6.3 删除环境 poetry env remove
7 在Pycharm中配置poetry环境
一般拿到一个含有poetry环境的项目,使用pycharm打开,会自动识别poetry解释器。如果没有识别 需要手动添加,如下所示: 基础解释器:选择对应虚拟环境的Python可执行文件。 Poetry可执行文件,选择安装在本地的Poetry可执行文件。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
配置完毕,打开pycharm底部导航栏控制台,即可显示当前虚拟环境前缀,接下来就可以操作就按照正常的流程执行了。
8.打包发布
8.1 打包 poetry build 8.2 pypi发布 publish
9 总结
一般情况下我们使用poetry管理项目,无非就是两种情况:新建项目,可以使用poetry new 项目名称, 或者是在旧的项目上使用poetry,那么就是用poetry init 使用交互式初始化一个项目。 平常安装依赖或者是更新依赖 就使用 poetry add/update 依赖名。
10.扩展
更多命令行
(onemobile-apicase-alYbnEg_-py3.10) guowenhe@guowenhe-2 onemobile-apicase % poetry --help Poetry version 1.1.13 USAGE poetry [-h] [-q] [-v [<...>]] [-V] [--ansi] [--no-ansi] [-n]
官网入口 poetry (https://python-poetry.org/docs/#installing-with-the-official-installer)