poetry Python 依赖管理和打包工具开源项目

我要开发同款
匿名用户2018年09月18日
49阅读
开发技术Python
授权协议MIT

作品详情

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.4typing = { version = "^3.6", python = "~2.7 || ~3.4" }# Use pathlib2 for Python 2.7 and 3.4pathlib2 = { version = "^2.3", python = "~2.7 || ~3.4" }# Use virtualenv for Python 2.7 since venv does not existvirtualenv = { 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 提供了一系列覆盖整个开发流程的命令,这些命令使用简单:

poetry命令名称功能new 创建一个项目脚手架,包含基本结构、pyproject.toml 文件init基于已有的项目代码创建pyproject.toml 文件,支持交互式填写install安装依赖库update更新依赖库add添加依赖库remove移除依赖库show查看具体依赖库信息,支持显示树形依赖链build构建tar.gz 或wheel 包publish发布到PyPIrun运行脚本和代码
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论