在本教程中,探索了如何创建新的 Python Poetry 项目以及如何将 Poetry 添加到现有项目中。

本文详细介绍了如何使用Python的依赖管理工具Poetry来创建新项目和添加到现有项目中,包括Poetry的安装、创建新项目、管理依赖、处理poetry.lock文件以及将Poetry集成到已有项目的过程。通过Poetry,可以方便地管理项目依赖,确保各环境的一致性。
摘要由CSDN通过智能技术生成

当您的 Python 项目依赖于外部包时,您需要确保使用每个包的正确版本。更新后,软件包可能无法像更新前那样工作。Python Poetry 之 类的依赖项管理器可帮助您指定、安装和解析项目中的外部包。通过这种方式,您可以确保始终在每台机器上使用正确的依赖版本。

使用Poetry将帮助您启动新项目、维护现有项目并掌握 依赖项管理 。您将准备好使用pyproject.toml文件,这将是在 Python 项目中定义构建需求的标准。

要完成本教程并充分利用它,您应该对虚拟环境、模块和包以及pip.

虽然本教程侧重于依赖项管理,但 Poetry 还可以帮助您构建和打包项目。如果您想分享您的工作,那么您甚至可以将您的 Poetry 项目发布到Python Packaging Index (PyPI)。

注意先决条件

在深入研究 Python Poetry 的细节之前,您需要了解一些先决条件。首先,您将阅读本教程中将遇到的术语的简短概述。接下来,您将安装 Poetry 本身。

相关术语

如果您曾经import在 Python 脚本中使用过语句,那么您就已经使用过 modules 。其中一些模块可能是您自己编写的 Python 文件。其他可能是 内置 模块,例如datetime。但是,有时 Python 提供的还不够。那时您可能会转向外部的打包模块。当您的 Python 代码依赖于外部模块时,您可以说这些  是您项目的 依赖 项。

您可以在PyPI 中找到不属于Python 标准库的包。在了解其工作原理之前,您需要在系统上安装 Poetry。

Python Poetry安装

要在命令行中使用 Poetry,您应该在系统范围内安装它。如果您只是想尝试一下,那么您可以使用pip. 但是您应该谨慎尝试这种方法,因为 Poetry 将安装自己的依赖项,这可能会与您在项目中使用的其他包冲突。

安装 Poetry的推荐方法是使用官方install-poetry脚本。您可以手动下载并运行此​ ​Python 文件,也​ ​可以在下方选择您的操作系统以使用相应的命令:

  • 视窗
  • Linux + macOS
PS C:\> (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py -UseBasicParsing).Content | python -

如果您使用的是 Windows,那么您可以使用Invoke-Webrequest带有-UseBasicParsing选项的cmdlet将请求的 URL 的内容下载到 标准输出流 (stdout) 。随着管道字符(|),你移交输出到 标准输入流(标准输入) 的python。在这种情况下,您将的内容通过管道install-poetry.py传输到 Python 解释器。

注意:有些用户在 Windows 10 上使用 PowerShell 命令时会报告错误。

在输出中,您应该看到安装完成的消息。您可以poetry --version在终端中运行以查看是否poetry有效。此命令将显示您当前的 Poetry 版本。如果要更新 Poetry,则可以运行poetry self update.

Python Poetry入门

安装 Poetry 后,是时候看看 Poetry 是如何工作的了。在本节中,您将学习如何开始一个新的 Poetry 项目以及如何将 Poetry 添加到现有项目中。您还将看到项目结构并检查pyproject.toml文件。

创建一个新的Poetry项目

您可以使用new命令和项目名称作为参数来创建新的 Poetry 项目。在本教程中,该项目称为rp-poetry. 创建项目,然后进入新创建的目录:

$ poetry new rp-poetry
$ cd rp-poetry

通过运行poetry new rp-poetry,您可以创建一个名为 的新文件夹rp-poetry/。当您查看文件夹内部时,您会看到一个结构:

rp-poetry/
│
├── rp_poetry/
│   └── __init__.py
│
├── tests/
│   ├── __init__.py
│   └── test_rp_poetry.py
│
├── README.rst
└── pyproject.toml

Poetry 会自动为您规范化包名。它将-项目名称中的破折号 ( ) 转换_为文件夹名称中的下划线 ( ) rp_poetry/。否则,Python 中将不允许使用该名称,因此您无法将其作为模块导入。为了更好地控制创建包名称,您可以使用该--name选项以不同于项目文件夹的方式命名:

$ poetry new rp-poetry --name realpoetry

如果您更喜欢将源代码存储在额外的src/父文件夹中,那么 Poetry 可以让您使用以下--src标志来遵守该约定:

$ poetry new --src rp-poetry
$ cd rp-poetry

通过添加--src标志,您创建了一个名为 的文件夹src/,其中包含您的rp_poetry/目录:

rp-poetry/
│
├── src/
│   │
│   └── rp_poetry/
│       └── __init__.py
│
├── tests/
│   ├── __init__.py
│   └── test_rp_poetry.py
│
├── README.rst
└── pyproject.toml

创建新的 Poetry 项目时,您将立即收到一个基本的文件夹结构。

检查项目结构

该rp_poetry/子文件夹本身是不是很壮观呢。在这个目录中,你会找到一个__init__.py包含你的包版本的文件:

# rp_poetry/__init__.py
__version__ = "0.1.0"

当您跳到tests/文件夹并打开 时test_rp_poetry.py,您会注意到它rp_poetry已经是可导入的:

# tests/test_rp_poetry.py
from rp_poetry import __version__
def test_version():
    assert __version__ == "0.1.0"

Poetry 还为该项目添加了第一个测试。该test_version()函数检查 的__version__变量是否rp_poetry/__init__.py包含预期的版本。但是,该__init__.py文件并不是您定义包版本的唯一位置。另一个位置是pyproject.toml文件。

使用pyproject.toml文件

使用 Poetry 最重要的文件之一是pyproject.toml文件。这个文件不是 Poetry 的发明。这是 PEP 518 中定义的 配置文件 标准:

此 PEP 指定 Python 软件包应如何指定它们具有的构建依赖项以执行其选择的构建系统。作为本规范的一部分,为软件包引入了一个新的配置文件,用于指定它们的构建依赖项(期望相同的配置文件将用于未来的配置细节)。(来源)

作者考虑了上面引用中提到的“新配置文件”的几种文件格式。最后,他们决定采用 TOML 格式,即Tom's Obvious Minimal Language

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值