动动发家的小手,点个赞吧!

1. 导读

本文将介绍一个目前非常流行,且用于浩瀚Python项目中依赖办理和打包的东西,包罗根本的安拆与利用。

2. Poetry

Poetry[1] 是Python 顶用于依赖办理和打包的东西。它允许您声明项目所依赖的库,并将为您办理(安拆/更新)它们。Poetry 供给了一个锁定文件以确保可反复安拆,而且能够构建您的项目以停止分发。

2.1. *toml文件

pyPRoject.toml能够算是Poetry的核心设置装备摆设文件了,里面包罗了项目标相关信息,利用的情况信息,安拆的依赖信息,次要有一下设置装备摆设:

# 项目包的名字name = "my-package" # 版本version = "0.1.0"# 包的描述description = "A short description of the package."# 答应证license = "MIT"# 做者authors = ["冷冻工场 <storyice@163.com>",]# 维护者maintainers = ["冷冻工场 <storyice@163.com>",]# READMD文件readme = ["docs/README1.md", "docs/README2.md"]# 包的介绍主页homepage = "https://python-poetry.org/"# 仓库地址repository = "https://github.com/python-poetry/poetry"# 文档documentation = "https://python-poetry.org/docs/"3. 实战3.1. 安拆

在Linux、macOS、Windows (WSL)中安拆Poetry

Linux、macOS、Windows (WSL)curl -sSL https://install.python-poetry.org | python3 -晋级现有Poetrypoetry self update3.2. 新建项目创建新的项目poetry new project-name# 项目名 与 文件夹名 差别poetry new folder-name --name project-name# 利用src项目构造(可选)poetry new --src project-name# 初始化已经存在的项目cd project-name-dirpoetry initPython项目管理: Poetry  第1张

项目构造树

3.3. 情况办理

poetry起首会查抄当前项目能否存在虚拟情况,若是存在,连结现有情况,若是没有,会主动创建一个与当前依赖相婚配的情况。

选择项目情况poetry env use /full/path/to/python# 若是解释器已经添加到情况变量中poetry env use python3.7poetry env use 3.7 # 同上,二选一显示当前情况信息poetry env infoPython项目管理: Poetry  第2张

情况信息

显示与当前项目相关的情况poetry env listPython项目管理: Poetry  第3张

情况列表

删除情况poetry env remove /full/path/to/python# 同时删除多个情况poetry env remove python3.6 python3.7 python3.8# 一次性删除全数情况 poetry env remove --all

小编建议设置下面设置装备摆设,其感化是将虚拟情况的文件夹放置于项目文件夹下

poetry config virtualenvs.in-project true3.4. 依赖办理

利用Poetry停止添加依赖,有两种体例。一种是在号令行中,间接利用相关号令来添加依赖,或者删除依赖。别的一种是,通过修改项目中的pyproject.toml文件,来办理依赖。

号令行办理# 添加依赖poetry add <lib># 添加dev依赖poetry add <lib> --dev # poetry add package-name -D# 删除依赖poetry remove <lib># 更新依赖poetry update# 锁定依赖版本poetry lock# 列出全数依赖项poetry show# 列出陈旧的依赖项poetry show --outdated# 搜刮指定的包poetry search <name>设置装备摆设文件办理[tool.poetry]name = "project-name"version = "0.1.0"description = ""authors = ["Swindler <jzj@1033199817@电话.com>"]readme = "README.md"packages = [{include = "project_name"}][tool.poetry.dePEndencies]python = "^3.8"# 在此间接添加,如 0.1.0 版本的numpynumpy = "0.1.0"# 若是不晓得指定的版本,能够用*取代,Poetry会主动选择适宜的版本numpy = "*"[build-system]requires = ["poetry-core"]build-backend = "poetry.core.masonry.api"

按照设置装备摆设文件更新依赖

poetry update

依赖的版本指定,撑持不等式(简单易用)

>= 1.2.0> 1< 2!= 1.2.33.5. 换源

Poetry也撑持换源,加速依赖的下载速度.

清华源# 将下方设置装备摆设添加至pyproject.toml末尾即可[[tool.poetry.source]]name = "tsinghua-source"url = "https://pypi.tuna.tsinghua.edu.cn/simple/"default = true # 仅从定义仓库获取阿里源# 将下方设置装备摆设添加至pyproject.toml末尾即可[[tool.poetry.source]]name = "aliyun-source"url = " http://mirrors.aliyun.com/pypi/simple/"default = true # 仅从定义仓库获取3.6. requirement

Poetry也撑持requirement.txt操做

导出requirement.txtpoetry export -f requirements.txt --output requirements-prod.txt --without-hashes导入requirement.txtcat requirements.txt|xargs poetry add参考材料

[1]Poetry: https://python-poetry.org/docs/