Poetry的基本使用

准备工作

如果你是在一个已有的项目里使用Poetry,你只需要执行 poetry init 命令来创建一个 pyproject.toml 文件:

poetry init

可看到有很多提示输入,不确定的内容就先按下Enter使用默认值,后续可以再修改pyproject.toml文件。指定依赖的环节可以跳过,手动安装会更高效一点。

如果你想创建一个新的 Python 项目,使用 poetry new <文件夹名称> 命令可以创建一个项目模板:

poetry new poetry-demo

这会创建一个这样的项目结构:

poetry-demo
├── pyproject.toml
├── README.rst
├── poetry_demo
│ └── __init__.py
└── tests
├── __init__.py
└── test_poetry_demo.py

创建虚拟环境

1.使用 poetry install 命令创建虚拟环境(确保当前目录有 pyproject.toml 文件):

poetry install

这个命令会读取 pyproject.toml 中的所有依赖(包括开发依赖)并安装,如果不想安装开发依赖,可以附加 --no-dev 选项。如果项目根目录有 poetry.lock 文件,会安装这个文件中列出的锁定版本的依赖。

2.使用poetry add命令创建虚拟环境

poetry add 依赖包名称

当我们使用add命令时,没有检测到虚拟环境,也会为当前目录自动创建虚拟环境。

3.利用 poetry env use 创建

这个命令,可以指定创建虚拟环境时使用的Python解释器版本。

poetry env use python3.7

使用这个命令后,会在虚拟环境路径下创建一个envs.toml文件,用来存储哪些虚拟环境指定了Python解释器的版本。

➜  virtualenvs cat envs.toml
[athena-LtyjKFV4]
minor = "3.7"
patch = "3.7.6"

激活虚拟环境

执行poetry的命令并不需要激活虚拟环境,因为poetry会自动检测当前虚拟环境,如果想在当前目录对应的虚拟环境中执行命令,可以使用以下命令:

poetry run <你的命令> # 例如: poetry run python flask.py

如果想显示的激活虚拟环境,使用如下命令:

poetry shell

安装依赖

安装最新稳定版本的flask

poetry add flask

指定为开发依赖,会写到pyproject.toml中的[tool.poetry.dev-dependencies]区域

poetry add pytest --dev

指定具体的版本

poetry add flask=2.22.0

安装pyproject.toml文件中的全部依赖

poetry install

只安装非development环境的依赖,一般部署时使用

poetry install --no-dev

追踪 & 更新包

查看项目安装的依赖

poetry show

树形结构查看项目安装的依赖

poetry show -t

查看可以更新的依赖

poetry update

更新所有锁定版本的依赖

poetry update

如果你想更新某个指定的依赖,传递包名作为参数:

poetry update foo

卸载包

使用 poetry remove <包名称>卸载一个包:

poetry remove foo

查找当前项目的虚拟环境

使用poetry env list可以查看当前的虚拟环境

poetry env list

如果想查看当期虚拟环境的绝对路径,可以加上--full-path

poetry env list --full-path

删除虚拟环境路径

删除虚拟环境,使用remove命令,指定对应的解析器版本

poetry env remove python2
poetry env remove python3

PyPI 镜像源

以使用清华提供的 PyPI 镜像源为例,你需要在 pyproject.toml 文件里加入这部分内容:

[[tool.poetry.source]]
name = "tsinghua"
default = true
url = "https://pypi.tuna.tsinghua.edu.cn/simple"

最新文章

  1. Ceph RGW服务 使用s3 java sdk 分片文件上传API 报‘SignatureDoesNotMatch’ 异常的定位及规避方案
  2. WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日
  3. svn 修改文件的二进制或文本标记
  4. Sql Server插入数据并返回自增ID,@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的区别
  5. 快手 KSCAD 5.0 矢量图形设计软件
  6. PLSQL导入Excel表中数据
  7. PHP 的 HMAC_SHA1算法 实现
  8. winform中如何在TextBox中只能输入数字(可以带小数点)
  9. pc2日记——有惊无险的第二天2014/08/29
  10. 21. leetcode 492
  11. HTML基础入门
  12. centos安装node环境
  13. Java链接MySQL数据库的配置文件
  14. javascript方法篇-String
  15. python深度学习库keras——安装
  16. Journal of BitcoinJ 从clone开始
  17. C# 使用 iTextSharp 将 PDF 转换成 TXT 文本
  18. cocos js 3.8.1 clippingNode 不能被 ccui.ScrollView 或者ccui.Layout裁剪的bug
  19. SystemProperties.get/set property_get/set
  20. Django2.1更新日志

热门文章

  1. 基于Linux系统的MariaDB数据库的安装配置
  2. Linux下用Sed查找IP地址
  3. 【第十四篇】- Maven 自动化构建之Spring Cloud直播商城 b2b2c电子商务技术总结
  4. python中字典按键、值进行排序
  5. POJ1804——Brainman(水题)
  6. HTML基本概念及基本标签
  7. goto语法在PHP中的使用
  8. Docker系列(1) - Centos8.X安装Docker
  9. Shell系列(7)- 通配符
  10. (一)es 概述与安装