龙空技术网

Python项目管理: Poetry

冷冻工厂 980

前言:

现时咱们对“pythonproject怎么设置中文”可能比较注意,兄弟们都需要分析一些“pythonproject怎么设置中文”的相关资讯。那么小编同时在网上收集了一些对于“pythonproject怎么设置中文””的相关资讯,希望看官们能喜欢,我们快快来学习一下吧!

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

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 = ";# 仓库地址repository = ";# 文档documentation = ";
3. 实战3.1. 安装

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

Linux、macOS、Windows (WSL)

curl -sSL  | python3 -
升级现有Poetry
poetry self update
3.2. 新建项目创建新的项目
poetry new project-name# 项目名 与 文件夹名 不同poetry new folder-name --name project-name# 使用src项目结构(可选)poetry new --src project-name# 初始化已经存在的项目cd project-name-dirpoetry init

项目结构树

3.3. 环境管理

poetry首先会检查当前项目是否存在虚拟环境,如果存在,保持现有环境,如果没有,会自动创建一个与当前依赖相匹配的环境。

选择项目环境

poetry env use /full/path/to/python# 如果解释器已经添加到环境变量中poetry env use python3.7poetry env use 3.7  # 同上,二选一
显示当前环境信息
poetry env info

环境信息

显示与当前项目相关的环境

poetry env list

环境列表

删除环境

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 true
3.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@qq.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.3
3.5. 换源

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

清华源

# 将下方配置添加至pyproject.toml末尾即可[[tool.poetry.source]]name = "tsinghua-source"url = ";default = true  # 仅从定义仓库获取
阿里源
# 将下方配置添加至pyproject.toml末尾即可[[tool.poetry.source]]name = "aliyun-source"url = " ;default = true  # 仅从定义仓库获取
3.6. requirement

Poetry也支持requirement.txt操作

导出requirement.txt

poetry export -f requirements.txt --output requirements-prod.txt --without-hashes
导入requirement.txt
cat requirements.txt|xargs poetry add
参考资料

[1]Poetry:

标签: #pythonproject怎么设置中文