Python项目管理: Poetry
动动发财的小手,点个赞吧!
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 = ["冷冻工厂 <[email protected]>",] # 维护者 maintainers = ["冷冻工厂 <[email protected]>",] # 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 <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@[email protected]>"] 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 # 仅从定义仓库获取
- 阿里源
# 将下方配置添加至pyproject.toml末尾即可 [[tool.poetry.source]] name = "aliyun-source" url = " http://mirrors.aliyun.com/pypi/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/
版权声明:
作者: freeclashnode
链接: https://www.freeclashnode.com/news/article-1961.htm
来源: FreeClashNode
文章版权归作者所有,未经允许请勿转载。
免费节点实时更新
热门文章
- 3月4日|22M/S,V2ray/Clash(小猫咪)/SSR免费节点订阅链接每天更新
- 3月5日|20.2M/S,SSR/Clash(小猫咪)/V2ray免费节点订阅链接每天更新
- 3月6日|20.1M/S,V2ray/SSR/Clash(小猫咪)免费节点订阅链接每天更新
- 2月22日|19.9M/S,Clash(小猫咪)/V2ray/Shadowrocket(小火箭)免费节点订阅链接每天更新
- 3月1日|19.4M/S,V2ray/Clash(小猫咪)/Shadowrocket(小火箭)免费节点订阅链接每天更新
- 3月2日|21.9M/S,Shadowrocket(小火箭)/Clash(小猫咪)/V2ray免费节点订阅链接每天更新
- 3月7日|18M/S,Clash(小猫咪)/V2ray/Shadowrocket(小火箭)免费节点订阅链接每天更新
- 2月27日|21.1M/S,SSR/Clash(小猫咪)/V2ray免费节点订阅链接每天更新
- 2月26日|22.8M/S,Clash(小猫咪)/SSR/V2ray免费节点订阅链接每天更新
- 3月3日|21.9M/S,V2ray/SSR/Clash(小猫咪)免费节点订阅链接每天更新
最新文章
- 3月21日|22.2M/S,V2ray/Clash(小猫咪)/SSR免费节点订阅链接每天更新
- 3月20日|22.8M/S,V2ray/SSR/Clash(小猫咪)免费节点订阅链接每天更新
- 3月19日|21.1M/S,V2ray/Clash(小猫咪)/SSR免费节点订阅链接每天更新
- 3月18日|18.7M/S,V2ray/Shadowrocket(小火箭)/Clash(小猫咪)免费节点订阅链接每天更新
- 3月17日|20.1M/S,SSR/Clash(小猫咪)/V2ray免费节点订阅链接每天更新
- 3月16日|18.9M/S,Shadowrocket(小火箭)/Clash(小猫咪)/V2ray免费节点订阅链接每天更新
- 3月15日|22.4M/S,Shadowrocket(小火箭)/Clash(小猫咪)/V2ray免费节点订阅链接每天更新
- 3月14日|19.3M/S,V2ray/Clash(小猫咪)/SSR免费节点订阅链接每天更新
- 3月13日|21.1M/S,V2ray/Clash(小猫咪)/SSR免费节点订阅链接每天更新
- 3月12日|22.1M/S,SSR/Clash(小猫咪)/V2ray免费节点订阅链接每天更新