官网介绍:Poetry is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

https://python-poetry.org/docs/

Poetry 是 Python 中用于依赖管理和打包的工具。它允许您声明项目所依赖的库,并且它将为您管理(安装/更新)它们。

本文将带大家在矩池云上安装并使用 Poetry 管理项目环境,默认你已经在矩池云上租用了一台机器,如果不知道如何在矩池云租用服务器,可以查看矩池云新手入门教程

安装Poetry

pip install poetry

创建一个poetry项目目录

首先我们进入 /home 目录中,然后执行poetry new指令,即可新建一个poetry项目,默认包含下面几部分。

cd /home
poetry new my-project
cd my-project
tree

my-project
├── README.rst # 项目说明
├── my_project # 项目文件目录
│ └── __init__.py
├── pyproject.toml # poetry配置文件 重要
└── tests # 测试文件
├── __init__.py
└── test_my_project.py

上面目录结构中,最重要的是pyproject.toml,里面默认包含了下面内容:

[tool.poetry]
name = "my-project"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"] [tool.poetry.dependencies]
python = "^3.8" [tool.poetry.dev-dependencies]
pytest = "^5.2" [build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
  • tool.poetry 记录项目名称、版本、基本描述和作者
  • tool.poetry.dependencies 记录项目依赖工具和版本,比如python
  • tool.poetry.dev-dependencies 记录项目依赖的python包
  • build-system 记录Poetry环境构建工具

poetry创建、进入虚拟环境

  • 创建虚拟环境 poetry env use 本地python解释器路径
(myconda) root@c6854bdc088b:/home/my-project# poetry env use /root/miniconda3/envs/myconda/bin/python
Creating virtualenv my-project-zjY4rh4o-py3.8 in /root/.cache/pypoetry/virtualenvs
Using virtualenv: /root/.cache/pypoetry/virtualenvs/my-project-zjY4rh4o-py3.8
  • 查看虚拟环境基本信息
(myconda) root@c6854bdc088b:/home/my-project# poetry env info

Virtualenv
Python: 3.8.2
Implementation: CPython
Path: /root/.cache/pypoetry/virtualenvs/my-project-zjY4rh4o-py3.8
Valid: True System
Platform: linux
OS: posix
Python: /root/miniconda3/envs/myconda
  • 进入虚拟环境
(myconda) root@c6854bdc088b:/home/my-project# poetry shell
Spawning shell within /root/.cache/pypoetry/virtualenvs/my-project-zjY4rh4o-py3.8
sh-4.4# . /root/.cache/pypoetry/virtualenvs/my-project-zjY4rh4o-py3.8/bin/activate
(my-project-zjY4rh4o-py3.8) sh-4.4# pip list
Package Version
---------- -------
pip 22.0.4
setuptools 62.1.0
wheel 0.37.1
(my-project-zjY4rh4o-py3.8) sh-4.4#

poetry常用指令

  • 安装第三方包

进入虚拟环境后,我们可以直接pip innstall 包名 安装自己需要的第三方包,不过这样安装包不会记录到pyproject.toml中。

# poetry shell 进入虚拟环境后,可以直接pip install 包名安装
(my-project-zjY4rh4o-py3.8) sh-4.4# pip install pandas
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting pandas
Downloading https://mirrors.aliyun.com/pypi/packages/12/07/e82b5de
...
Successfully installed numpy-1.22.3 pandas-1.4.2 python-dateutil-2.8.2 pytz-2022.1 six-1.16.0
(my-project-zjY4rh4o-py3.8) sh-4.4# pip list
Package Version
--------------- -------
numpy 1.22.3
pandas 1.4.2
pip 22.0.4
python-dateutil 2.8.2
pytz 2022.1
setuptools 62.1.0
six 1.16.0
wheel 0.37.1

不进入虚拟环境,我们可以通过poetry add 包名来安装,同时会生成一个poetry.lock文件,记录安装包相关依赖。

# 不进入虚拟环境
(myconda) root@cd90f1a3f442:/home/my-project# poetry add pendulum@latest
Using version ^2.1.2 for pendulum Updating dependencies
Resolving dependencies... (59.4s) Writing lock file Package operations: 10 installs, 0 updates, 0 removals • Installing pyparsing (3.0.8)
• Installing attrs (21.4.0)
• Installing more-itertools (8.12.0)
• Installing packaging (21.3)
• Installing pluggy (0.13.1)
• Installing py (1.11.0)
• Installing pytzdata (2020.1)
• Installing wcwidth (0.2.5)
• Installing pendulum (2.1.2)
• Installing pytest (5.4.3)
  • 查看安装的包依赖关系 poetry show -t
(myconda) root@cd90f1a3f442:/home/my-project# poetry show -t
pendulum 2.1.2 Python datetimes made easy
├── python-dateutil >=2.6,<3.0
│ └── six >=1.5
└── pytzdata >=2020.1
pytest 5.4.3 pytest: simple powerful testing with Python
├── atomicwrites >=1.0
├── attrs >=17.4.0
├── colorama *
├── more-itertools >=4.0.0
├── packaging *
│ └── pyparsing >=2.0.2,<3.0.5 || >3.0.5
├── pluggy >=0.12,<1.0
├── py >=1.5.0
└── wcwidth *
  • 移除安装的第三方包 poetry remove 包名,移除指定第三方包的同时会卸载相关依赖包。
(myconda) root@cd90f1a3f442:/home/my-project# poetry remove pendulum
Updating dependencies
Resolving dependencies... (0.1s) Writing lock file Package operations: 0 installs, 0 updates, 4 removals • Removing pendulum (2.1.2)
• Removing python-dateutil (2.8.2)
• Removing pytzdata (2020.1)
• Removing six (1.16.0)
  • 导出项目依赖
poetry export -f requirements.txt --output requirements.txt

常用参数:

--format (-f): 导出文件格式,目前仅支持requirements.txt
--output (-o): 导出文件名称
  • 查看poetry全局配置 poetry config --list
(myconda) root@cd90f1a3f442:/home/my-project# poetry config --list
# poetry缓存目录
cache-dir = "/root/.cache/pypoetry"
experimental.new-installer = true
installer.parallel = true
# 默认 true,进行poetry add/install 时如果没有虚拟环境,就创建一个,如果为 false,没有虚拟环境就安装到系统环境中
virtualenvs.create = true
# 在项目根目录创建虚拟环境
virtualenvs.in-project = null
# 虚拟环境目录
virtualenvs.path = "{cache-dir}/virtualenvs" # /root/.cache/pypoetry/virtualenvs
  • 设置poetry全局配置值 poetry config virtualenvs.create false --local
(myconda) root@cd90f1a3f442:/home/my-project# poetry config virtualenvs.create false --local
(myconda) root@cd90f1a3f442:/home/my-project# poetry config --list
cache-dir = "/root/.cache/pypoetry"
experimental.new-installer = true
installer.parallel = true
virtualenvs.create = false
virtualenvs.in-project = null
virtualenvs.path = "{cache-dir}/virtualenvs" # /root/.cache/pypoetry/virtualenvs

执行后,会在项目目录下生成一个poetry.toml文件,记录了修改的配置名和对应的值,--local表示这是修改本项目的配置。

更多相关指令

poetry install  # 通过项目目录中的pyproject.toml安装相关依赖
poetry check # 检查依赖关系
poetry search requests # 查找可用的相关包信息
poetry lock # 更新 pyproject.toml 中依赖版本,加--no-update只更lock新文件,不更新包版本
poetry version # 查看poetry版本
...

更多使用方法,可以阅读学习官方文档:https://python-poetry.org/docs/cli

如何在矩池云使用 Poetry 管理项目环境的更多相关文章

  1. 矩池云上编译安装dlib库

    方法一(简单) 矩池云上的k80因为内存问题,请用其他版本的GPU去进行编译,保存环境后再在k80上用. 准备工作 下载dlib的源文件 进入python的官网,点击PyPi选项,搜索dilb,再点击 ...

  2. 矩池云上使用nvidia-smi命令教程

    简介 nvidia-smi全称是NVIDIA System Management Interface ,它是一个基于NVIDIA Management Library(NVML)构建的命令行实用工具, ...

  3. 矩池云助力科研算力免费上"云",让 AI 教学简单起来

    矩池云是一个专业的国内深度学习云平台,拥有着良好的深度学习云端训练体验,和高性价比的GPU集群资源.而且对同学们比较友好,会经常做一些大折扣的活动,最近双十一,全场所有的RTX 2070.Platin ...

  4. 矩池云 | 高性价比的GPU租用深度学习平台

    矩池云是一个专业的国内深度学习云平台,拥有着良好的深度学习云端训练体验.在性价比上,我们以 2080Ti 单卡为例,36 小时折扣后的价格才 55 元,每小时单价仅 1.52 元,属于全网最低价.用户 ...

  5. 在矩池云使用Disco Diffusion生成AI艺术图

    在 Disco Diffusion 官方说明的第一段,其对自身是这样定义: AI Image generating technique called CLIP-Guided Diffusion.DD ...

  6. 矩池云里查看cuda版本

    可以用下面的命令查看 cat /usr/local/cuda/version.txt 如果想用nvcc来查看可以用下面的命令 nvcc -V 如果环境内没有nvcc可以安装一下,教程是矩池云上如何安装 ...

  7. 在矩池云上复现 CVPR 2018 LearningToCompare_FSL 环境

    这是 CVPR 2018 的一篇少样本学习论文:Learning to Compare: Relation Network for Few-Shot Learning 源码地址:https://git ...

  8. 矩池云上安装yolov4 darknet教程

    这里我是用PyTorch 1.8.1来安装的 拉取仓库 官方仓库 git clone https://github.com/AlexeyAB/darknet 镜像仓库 git clone https: ...

  9. 用端口映射的办法使用矩池云隐藏的vnc功能

    矩池云隐藏了很多高级功能待用户去挖掘. 租用机器 进入jupyterlab 设置vnc密码 VNC_PASSWD="userpasswd" ./root/vnc_startup.s ...

  10. 矩池云上安装ikatago及远程链接教程

    https://github.com/kinfkong/ikatago-resources/tree/master/dockerfiles 从作者的库中可以看到,该程序支持cuda9.2.cuda10 ...

随机推荐

  1. [转帖]手把手教你在QEMU上运行RISC-V Linux

    https://kernel.0voice.com/forum.php?mod=viewthread&tid=3080   嵌入式Linux内核 发布于 2023-3-15 14:44:37  ...

  2. [专贴]在软件测试中UT,IT,ST,UAT分别是什么意思?

    在软件测试中UT,IT,ST,UAT分别是什么意思? https://zhidao.baidu.com/question/205450063884417205.html     UT(Unit Tes ...

  3. 解锁前端新潜能:如何使用 Rust 锈化前端工具链

    ​ 前言 近年来,Rust的受欢迎程度不断上升.首先,在操作系统领域,Rust 已成为 Linux 内核官方认可的开发语言之一,Windows 也宣布将使用 Rust 来重写内核,并重写部分驱动程序. ...

  4. css动画京东小布hover放大

    <style> .box { width: 183px; height: 130px; overflow: hidden; border: 1px solid pink; } div im ...

  5. windows10卸载小娜

    适用于2004版本往后的 win+x如图 输入如下代码 Get-AppxPackage-allusersMicrosoft.549981C3F5F10|Remove-AppxPackage 运行结束后 ...

  6. # 继续前行github star突破8k即时通讯IM开源项目OpenIM版本发布计划

    项目简介 OpenIM继续领跑开源IM领域,在广大开发者的支持下,目前github star突破8k.在数据泄露.信息外泄.隐私滥用的时代,IM私有化部署需求旺盛.其中,政企协同办公对IM需求猛增,随 ...

  7. Git如何拉取指定远程分支

    转载来自https://www.jianshu.com/p/856ce249ed78 目的 我们想要获取到代码仓库中分支"a" 中的文件到本地,我了解到有三种方法.   代码仓库 ...

  8. 人工智能创新挑战赛:海洋气象预测Baseline[4]完整版(TensorFlow、torch版本)含数据转化、模型构建、MLP、TCNN+RNN、LSTM模型训练以及预测

    人工智能创新挑战赛:海洋气象预测Baseline[4]完整版(TensorFlow.torch版本)含数据转化.模型构建.MLP.TCNN+RNN.LSTM模型训练以及预测 1.赛题简介 项目链接以及 ...

  9. 环境调试bug【二】无法加载源“<string>”: Source unavailable

    1.无法加载源"<string>": Source unavailable. 网上解决方法: 总结来说就两种: debugStdLib: true 添加到 launch ...

  10. vi / vim编辑器的使用 [补档-2023-07-01]

    vi/vim编辑器 ​ vi/vim编辑器是linux中的文本编辑器,其中vim比vi的功能更加强大,可以编辑shell程序,推荐使用vim,下面也将介绍vim如何使用. 2-1 vi/vim的三种工 ...