python项目依赖管理之poetry
poetry,是一个强大的Python项目依赖管理工具,旨在简化和优化项目的依赖管理过程。它提供了一种简单且一致的方式来定义、安装和管理项目所需的依赖项。本文将详细介绍poetry库的安装方法、使用方法、优缺点、应用场景和总结。
安装
在开始使用poetry库之前,您需要进行一些安装准备。以下是安装poetry库的步骤:
确保您的系统上已安装了Python 3.6或更高版本以及pip。
使用以下命令通过pip安装poetry库:
pip install poetry
安装完成后,您可以在终端中运行poetry --version命令来验证poetry是否成功安装。
使用方法
poetry库提供了简单而强大的命令行工具,使用户能够轻松地定义、安装和管理Python项目的依赖项。以下是poetry库的几个关键功能和使用方法:
项目初始化:通过运行poetry init命令,您可以创建一个新的Python项目并生成项目的初始配置文件。
添加依赖项:使用poetry add命令,可以方便地添加项目所需的依赖项,并自动更新项目的配置文件。
安装依赖项:通过运行poetry install命令,可以自动下载并安装项目所需的依赖项。
管理虚拟环境:poetry库还内置了虚拟环境管理功能,可帮助您在项目中创建和管理虚拟环境,以隔离各个项目的依赖项。
发布和打包:使用poetry publish命令,您可以将您的Python包发布到PyPI等包管理平台,以便其他人使用。
常用命令
# 创建新的Python项目
poetry new myproject # 进入项目目录
cd myproject # 添加项目依赖项
poetry add requests # 安装依赖项
poetry install
# 更新依赖到最新版本
poetry update # 运行Python脚本
poetry run python myscript.py # 查看版本
poetry --version # 初始化配置文件
poetry init # 查看配置
poetry config --list # 创建虚拟环境
poetry env use python版本 # 进入虚拟环境
poetry shell # 退出虚拟环境
deactivate
# 删除虚拟环境
poetry env remove # 注意点
1)默认创建的虚拟环境是并没有在项目目录下, 但是我们一般放到项目的根目录下方便查看,就需要更改虚拟环境路径
poetry config virtualenvs.in-project true
2)生成的poetry.lock推荐上传到版本控制中,可以锁定使用的版本
pyproject.toml
优缺点
优点:
poetry库提供了简单且一致的方式来定义、安装和管理Python项目的依赖项。
poetry库具有直观的命令行工具,易于使用和上手。
poetry库支持虚拟环境管理,以隔离各个项目的依赖项,使项目环境更加清晰、可靠。
缺点:
poetry库的学习曲线较陡峭,需要一些时间来熟悉和理解其工作原理。
对于一些特殊的项目结构或依赖项配置,poetry可能会有一定的限制和不灵活性。
在Pycharm中配置poetry环境
一般拿到一个含有poetry环境的项目,使用pycharm打开,会自动识别poetry解释器。如果没有识别 需要手动添加,如下所示:
基础解释器:选择对应虚拟环境的Python可执行文件。
Poetry可执行文件,选择安装在本地的Poetry可执行文件。

更改pypi源:
# --default 设置为默认源
# 阿里源:
poetry source add ali https://mirrors.aliyun.com/pypi/simple/ --default
# 腾讯源:
poetry source add tencent https://mirrors.cloud.tencent.com/pypi/simple/
# 清华源:
poetry source add tsinghua https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
删除源
poetry source remove 源的名字
查看源
poetry source show
应用场景
poetry适用于以下应用场景:
Python项目依赖管理:poetry库可以帮助开发者轻松地定义、安装和管理项目的依赖项,并提供虚拟环境管理功能。
包发布和分享:使用poetry库的发布功能,您可以将自己开发的Python包上传到包管理平台,与其他开发者分享和使用。
项目迁移和部署:poetry库的配置文件可以方便地跨不同环境和机器进行项目迁移和部署,确保环境的一致性和可重复性。
python项目依赖管理之poetry的更多相关文章
- python项目依赖管理分享迁移后重建开发环境(一)virtualenv 和 pip
作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/rebuild-development-environment-with-virtualenv-an ...
- Maven多模块项目依赖管理
Maven多模块项目依赖管理及dependencies与dependencyManagement的区别 转自:http://blog.csdn.net/liutengteng130/article/d ...
- 查找python项目依赖并生成requirements.txt——pipreqs 真是很好用啊
查找python项目依赖并生成requirements.txt 转自:http://blog.csdn.net/orangleliu/article/details/60958525 一起开发项目的时 ...
- Maven解读:项目依赖管理如何优化
Github地址:https://github.com/zwjlpeng/Maven_Detail Maven最大的好处莫过于其强大的依赖管理系统,在Pom配置文件中指定项目需要的Jar包的坐标,Ma ...
- python之项目依赖管理
生成所有依赖清单 requirements.txt 1. pipreqs 工具 安装) pip install pipreqs 执行生成依赖列表命令) pipreqs ./ 完善版本: pipreq ...
- Python项目依赖并生成requirements.txt
一起开发项目的时候总是要搭建环境和部署环境的,这个时候必须得有个python第三方包的list,一般都叫做requirements.txt. 如果一个项目使用时virtualenv环境,还好办 pip ...
- pipreqs------查找python项目依赖并生成requirements.txt
项目开发的时候,总是要搭建和部署环境,这时,就需要一个python第三方包的list,一般叫做requirements.txt.如果项目使用virtualenv环境,直接使用pip freeze即可, ...
- pipreqs------查找python项目依赖并生成requirement
一起开发项目的时候总是要搭建环境和部署环境的,这个时候必须得有个python第三方包的list,一般都叫做requirements.txt. 如果一个项目使用时virtualenv环境,还好办 pip ...
- 查找Python项目依赖的库并生成requirements.txt
使用pip freeze pip freeze > requirements.txt 这种方式配合virtualenv 才好使,否则把整个环境中的包都列出来了. 使用 pipreqs 这个工具的 ...
- 查找python项目依赖并生成requirements.txt
1.如果使用virtualenv环境,直接使用 pip freeze > requirements.txt ➜ ~ .virtualenvs/xxx/bin/pip freeze > r ...
随机推荐
- Pandas从入门到放弃
公众号本文地址:https://mp.weixin.qq.com/s/mSkA5KvL1390Js8_1ZBiyw Pandas简介 Pandas是Panel data(面板数据)和Data anal ...
- java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator 问题解决
目录 报错情况 分析原因 解决方法 本文author:@愷龍 报错情况 在一次使用JSP的jstl时候按照正常引入jstl和使用for each标签出现了如下报错: 分析原因 经过一番调查研究发现原因 ...
- sicp每日一题[2.3]
Exercise 2.3 Implement a representation for rectangles in a plane. (Hint: You may want to make use o ...
- SQL Server – Transaction & Isolation 事务与隔离
前言 上回在谈到 Concurrency 并发控制 时, 有提到过事务的概念. 这篇就补上它具体的实现. 以前写过相关的文章: sql server 学习笔记 (nested transaction ...
- C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...
- ceph-rbd和cephfs使用
目录 1 用户权限管理和授权流程 1.1 列出用户 1.2 用户管理 1.2.1 ceph auth add 1.2.3 ceph auth get-or-create 1.2.4 ceph auth ...
- USB协议详解第4讲(USB描述符-标准配置描述符)
1.USB描述符 USB描述符有设备描述符.标准配置描述符.接口描述符.端点描述符.字符串描述符,HID设备有HID描述符.报告描述符和物理描述符.今天主要是学习USB标准配置描述符的组成. 2.标准 ...
- 4.2 等差数列及其前n项和
\(\mathbf{{\large {\color{Red} {欢迎到学科网下载资料学习}} } }\)[[高分突破系列]高二数学下学期同步知识点剖析精品讲义! \(\mathbf{{\large { ...
- 检查 .net 的版本号和所有的dotnet 的sdk
查看版本号: dotnet --version 查看所有的 sdks dotnet --list-sdks
- day03-了解ajax
Ajax Ajax即Asynchronous Javascript And XML(异步JavaScript和XML). Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,这使得程 ...