poetry 是一个包管理和打包的工具。
在 Python 中,对于初学者来说,打包系统和依赖管理是非常复杂和难懂的。即使对于经验丰富的开发者,一个项目总是要同时创建多个文件: `setup.py` ,`requirements.txt`,`setup.cfg` , `MANIFEST.in` ,还有最新的 `Pipfile`。
基于此, poetry 将所有的配置都放置在一个 toml 文件中,这些配置包括:依赖管理、构建、打包、发布。
poetry 的灵感来自于其他语言的一些工具: composer(PHP) 和 cargo (Rust) 。
poetry 的项目配置文件是 pyproject.toml ,一个简单的示例文件如下:
[tool.poetry] name = "poetry" version = "0.11.5" description = "Python dependency management and packaging made easy." authors = [ "Sébastien Eustace <sebastien@eustace.io>" ] license = "MIT" readme = "README.md" homepage = "https://poetry.eustace.io/" repository = "https://github.com/sdispater/poet" documentation = "https://poetry.eustace.io/docs" keywords = ["packaging", "dependency", "poetry"] classifiers = [ "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Libraries :: Python Modules" ] # Requirements [tool.poetry.dependencies] python = "~2.7 || ^3.4" cleo = "^0.6.7" requests = "^2.18" cachy = "^0.2" requests-toolbelt = "^0.8.0" jsonschema = "^2.6" pyrsistent = "^0.14.2" pyparsing = "^2.2" cachecontrol = { version = "^0.12.4", extras = ["filecache"] } pkginfo = "^1.4" html5lib = "^1.0" shellingham = "^1.1" tomlkit = "^0.4.4" # The typing module is not in the stdlib in Python 2.7 and 3.4 typing = { version = "^3.6", python = "~2.7 || ~3.4" } # Use pathlib2 for Python 2.7 and 3.4 pathlib2 = { version = "^2.3", python = "~2.7 || ~3.4" } # Use virtualenv for Python 2.7 since venv does not exist virtualenv = { version = "^16.0", python = "~2.7" } [tool.poetry.dev-dependencies] pytest = "^3.4" pytest-cov = "^2.5" mkdocs = "^1.0" pymdown-extensions = "^4.9" pygments = "^2.2" pytest-mock = "^1.9" pygments-github-lexers = "^0.0.5" black = { version = "^18.3-alpha.0", python = "^3.6" } pre-commit = "^1.10" tox = "^3.0" [tool.poetry.scripts] poetry = "poetry.console:main"
poetry 提供了一系列覆盖整个开发流程的命令,这些命令使用简单:
名称 | 功能 |
---|---|
new | 创建一个项目脚手架,包含基本结构、pyproject.toml 文件 |
init | 基于已有的项目代码创建 pyproject.toml 文件,支持交互式填写 |
install | 安装依赖库 |
update | 更新依赖库 |
add | 添加依赖库 |
remove | 移除依赖库 |
show | 查看具体依赖库信息,支持显示树形依赖链 |
build | 构建 tar.gz 或 wheel 包 |
publish | 发布到 PyPI |
run | 运行脚本和代码 |
介绍 Poetry 是Python 中的依赖管理和打包工具,当然它也可以配置虚拟环境。它允许您声明项目所依赖的库,并为您管理(安装/更新)它们。 之前一直使用virtualenvwrapper管理虚拟环境,现在来学习Poetry 系统要求 Poetry 需要 Python 2.7 或 3.5+。它是多平台的,目标是使其在 Windows、Linux 和 MAC 上同样有效。注意:下一个版本(1.2
1. 写在前面 在Python开发中,往往需要根据不同的需求搭建不同的Python环境, 环境管理方面, 之前学习到的方式是anaconda进行统一的管理, 但是工作之后了解到, conda在本地开发时候会提供非常多的便利,但对于生产环境,conda会过于臃肿,且locking的能力需要额外安装工具,所以往往不适用生产环境中的Python环境管理。 生产环境中,可以使用pyenv来管理各种Pyth
官网:https://python-poetry.org/docs/ Poetry 是 Python 中用于依赖管理和打包的工具。它允许您声明项目所依赖的库,并将为您管理(安装/更新)它们。 安装&更新&卸载 安装 **不推荐使用pip install --user poetry**安装 安装前需先安装Python环境 以下命令中管道符后需替换到指定python版本 OSX/Linux系统 - 直
Poetry的基本使用 准备工作 如果你是在一个已有的项目里使用Poetry,你只需要执行 poetry init 命令来创建一个 pyproject.toml 文件: poetry init 可看到有很多提示输入,不确定的内容就先按下Enter使用默认值,后续可以再修改pyproject.toml文件。指定依赖的环节可以跳过,手动安装会更高效一点。 如果你想创建一个新的 Python 项目,使用
poetry init, 创建一个pyproject.toml [tool.poetry] name = "p1" version = "0.1.0" description = "" authors = ["andy <zhangruibin021@gmail.com>"] [tool.poetry.dependencies] python = "^3.8" [tool.poetry.dev
poetry是一个Python虚拟环境和依赖管理的工具。poetry和pipenv类似,另外还提供了打包和发布的功能。 官方文档:python-poetry.org/docs/ python项目部署:poetry管理本地环境,上线用docker poetry 安装 poetry提供多种安装方式,个人推荐从以下2种方式中选择: 方式一:(推荐) $ curl -sSL https://raw.git
主要内容:如何使用 Modules?,如何在项目中使用,使用 replace 替换无法直接获取的 package最早的时候,Go语言所依赖的所有的第三方库都放在 GOPATH 这个目录下面,这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决? go module 是Go语言从 1.11 版本之后官方推出的版本管理工具,并且从 Go1.13 版本开始,go module 成为了Go语言默认的依赖管理工具。 Modules 官方定义为: Module
When you want to add, upgrade, or remove dependencies there are a couple of different commands you need to know. Each command will automatically update your package.json and yarn.lock files. Adding a
简介 在第三章我们在构建To Do应用的时候学习到了怎么声明对Servlet ApI的依赖,Gradle的领域特定语言使得声明依赖和仓库变得很简单,你只需要在dependencies脚本中声明你所依赖的库,然后你需要告诉构建系统要从哪个仓库里下载依赖。提供了这两个信息,Gradle就能自动解析、下载依赖到你的电脑上,如果有需要会存储在本地缓存中必备以后需要。 这一章我们将介绍Gradle对依赖管理
PHP 有很多可供使用的库、框架和组件。通常你的项目都会使用到其中的若干项 - 这些就是项目的依赖。直到最近,PHP 也没有一个很好的方式来管理这些项目依赖。即使你通过手动的方式去管理,你依然会为自动加载器而担心。但现在这已经不再是问题了。 目前 PHP 有两个使用较多的包管理系统 - Composer 和 PEAR。Composer 是 PHP 所使用的最流行的包管理器,然而在很长的一段时间里,
在San CLI UI中,可直接进行项目插件和依赖的安装、更新、卸载、删除等操作,依赖管理和插件管理的核心是npm包的安装可视化操作,好处是: npm install的可视化管理,组件升级更直观 操作简单,快速引入依赖 CLI的插件集合,更容易发现新包,提升检索效率 依赖管理 在依赖管理中,可以查看项目已安装的依赖列表,也可以在上方的搜索框中搜索项目已安装的依赖,然后更新或卸载它们。 安装依赖 点
SOFABoot 是在 Spring Boot 的基础上提供的功能扩展。基于 Spring Boot 的机制,SOFABoot 管理了 SOFA 中间件的依赖,并且提供了 Spring Boot 的 Starter,方便用户在 Spring Boot 中使用 SOFA 中间件。 SOFABoot 依赖管理 – Maven 在使用 SOFA 中间件之前,需要引入 SOFABoot 依赖管理。类似 S
主要内容:声明依赖关系,依赖关系配置,外部依赖,存储库,发布文件构建脚本定义了构建项目的过程; 每个项目包含一些依赖项和一些发表项。依赖性意味着支持构建项目的东西,例如来自其他项目的所需文件以及类路径中的外部(如或)。发布表示项目的结果,如测试类文件和构建文件,如文件。 负责构建和发布结果。 发布基于定义的任务。 可能希望将文件复制到本地目录,或将其上传到远程Maven或lvy存储库,或者可以在同一个多项目构建中使用另一个项目的文件。 发布的过程称为发布。 声
13.1 依赖管理 每个版本的Spring Boot提供了一个它所支持的依赖监管列表。实际上,您并不需要为构建配置中的这些依赖提供版本,因为Spring Boot会替您进行管理。当您升级Spring Boot,这些依赖也将以一致的方式进行升级。 如果有必要,您仍然可以指定一个版本覆盖掉Spring Boot建议的版本。 监管的列表包含所有您能用于Spring Boot的spring模块,以及第三方