Poetry(2)Poetry的基本使用方式
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"
Poetry(2)Poetry的基本使用方式的更多相关文章
- Python - poetry(2)命令介绍
poetry 语法格式 poetry [-h] [-q] [-v [<...>]] [-V] [--ansi] [--no-ansi] [-n] <command> [< ...
- vuex数据管理-数据模块化
对于vue这类mvvm框架来说,其核心就是组件与数据,因此做好相应的数据管理极为重要.这里分享下vuex数据模块化管理的方法,有利于搭建便于维护.协作的vue项目. vuex管理基本方法和使用 模块化 ...
- Python web 项目的依赖管理工具
Poetry可以帮助你声明.管理和安装Python项目的依赖项,确保你可以在任何地方都拥有正确的堆栈. Poetry支持Python 2.7 和Python 3以上 安装 Poetry提供了一个自定义 ...
- Python 打包——过去、现在与未来
英文 | Python packaging - Past, Present, Future[1] 原作 | BERNAT GABOR 译者 | 豌豆花下猫 声明 :本文获得原作者授权翻译,转载请保留原 ...
- 简单明朗的 RNN 写诗教程
目录 简单明朗的 RNN 写诗教程 数据集介绍 代码思路 输入 and 输出 训练集构建 生成一首完整的诗 代码实现 读取文件 统计字数 构建word 与 id的映射 转成one-hot代码 随机打乱 ...
- Django(76)isort工具对import导入进行排序
前言 我们在开发项目时经常会进行导包有import *格式的,还有from * import *格式的,最后就会显示的很乱,那么有没有什么工具能对导包进行一键排序呢?答案是有的,使用isort工具 i ...
- tep完整教程帮你突破pytest
持续维护的教程 tep教程会随着版本更新或经验积累,持续维护在电子书中,最新的最全的内容请锁定这篇文章[最新]tep完整教程帮你突破pytest: https://dongfanger.gitee.i ...
- 从锅炉工到AI专家(10)
RNN循环神经网络(Recurrent Neural Network) 如同word2vec中提到的,很多数据的原型,前后之间是存在关联性的.关联性的打破必然造成关键指征的丢失,从而在后续的训练和预测 ...
- 『TensotFlow』RNN中文文本_下_暨研究生开学感想
承前 接上节代码『TensotFlow』RNN中文文本_上, import numpy as np import tensorflow as tf from collections import Co ...
随机推荐
- ES6中函数调用自身需要注意的问题
在传统的递归调用中,可以采用如下方式 function sum(n) { return sum(n - 1) + n;} 但如今es6盛行,为了保持代码一致性,可以采用两种解决方式. 第一种,将thi ...
- (五)羽夏看C语言——结构体与类
写在前面 由于此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇 ...
- Android系统编程入门系列之应用内数据保存数据库
上篇文章已经介绍了如何使用SharedPreferences存储键值对形式的轻量级数据,对于那些相同结构的多组数据,类似于存储Java中定义的类的多个对象属性值,如果按照键值对的形式一条条读写,需要分 ...
- CGLib 简析
背景 JDK 动态代理存在的一些问题: 调用效率低 JDK 通过反射实现动态代理调用,这意味着低下的调用效率: 每次调用 Method.invoke() 都会检查方法的可见性.校验参数是否匹配,过程涉 ...
- Mysql常用sql语句(15)- cross join 交叉连接
测试必备的Mysql常用sql语句 https://www.cnblogs.com/poloyy/category/1683347.html 前言 交叉连接就是求多表之间的笛卡尔积 讲道理..这个我都 ...
- VUE003. 解决data中使用vue-i18n不更新视图问题(computed属性)
案例 在国际化开发中,有一部分需要国际化的文字是由数据驱动的储存在data中,然而VUE的data存在很多无法实时更新视图的问题,比如v-for循环的标签,当数据层次过深,通过源数据数组的索引改变它的 ...
- SpringBoot自定义初始化Bean+HashMap优化策略模式实践
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 传统的策略模式一般是创建公共接口.定义公共方法-->然后创建实体类实现公共接口.根据各自的 ...
- 使用 VSCode 给STM32配置一个串口 printf 工程
使用 VSCode 给STM32配置一个串口 printf 工程 gcc 重定向 printf 和 keil 不一样. 文件准备 先从以前的工程中拷过一份串口的代码来,然后在 main 函数中初始化串 ...
- Docker系列(27)- 容器互联--link
思考 思考一个场景,我们编写了一个微服务,database url=IP:,项目不重启,数据库ip换掉了,我们希望可以处理这个问题,可以使用名字来进行访问容器吗 实践 [root@localhost ...
- regexp 正则表达式
* 给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false input: 'rattler' output: true function conta ...