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 = ["冷冻工厂 ",]
# 维护者
maintainers = ["冷冻工厂 ",]
# 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 -
- 升级现有
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-dir
poetry init
项目结构树
3.3. 环境管理
poetry首先会检查当前项目是否存在虚拟环境,如果存在,保持现有环境,如果没有,会自动创建一个与当前依赖相匹配的环境。
- 选择项目环境
poetry env use /full/path/to/python
# 如果解释器已经添加到环境变量中
poetry env use python3.7
poetry 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
# 添加dev依赖
poetry add --dev # poetry add package-name -D
# 删除依赖
poetry remove
# 更新依赖
poetry update
# 锁定依赖版本
poetry lock
# 列出全部依赖项
poetry show
# 列出陈旧的依赖项
poetry show --outdated
# 搜索指定的包
poetry search
- 配置文件管理
[tool.poetry]
name = "project-name"
version = "0.1.0"
description = ""
authors = ["Swindler "]
readme = "README.md"
packages = [{include = "project_name"}]
[tool.poetry.dependencies]
python = "^3.8"
# 在此直接添加,如 0.1.0 版本的numpy
numpy = "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 = "https://pypi.tuna.tsinghua.edu.cn/simple/"
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: https://python-poetry.org/docs/
文章来源于互联网:Python项目管理: Poetry
阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=16341,转载请注明出处。
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=16341,转载请注明出处。
评论0