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 ...
随机推荐
- python将资源打包进exe
前言 之前py打包的exe一直是不涉及图片等资源的,直到我引入图片后打包,再双击exe发现直接提示未找到资源. 分析 我py代码中的图片引入使用的是项目相对路径,打包时pyinstaller只会引入p ...
- 第一个鸿蒙程序Hello Word
DevEco Studio介绍 HUAWEI DevEco Studio(以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,面向华为终端全场景多设备 ...
- OData – 权限管理
前言 OData 其实没有权限的机制, Client 可以任意的 $select, $expand. 即便它可以做简单防御设置, 但是离平常的业务需求还是很远. 一般上 query entity 常见 ...
- 十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)
十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式) @ 目录 十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式) 1. Spring Boot 配置 M ...
- Axios——异步框架
Axios--异步框架(简化AJAX代码书写) Axios 请求方式别名
- 邀请参与 2022 第三季度 Flutter 开发者调查
自 Flutter 3 发布之后,我们在以移动端为中心到多平台框架的路线上稳步前行,用 Dart 2.17 的新语言特性帮助大家提升工作效率,并对核心工具进行了改进,让您在跨平台打造优秀体验时更加得心 ...
- 解决每次调试flask需要重启本地服务器的方法
export FLASK_ENV=development export FLASK_APP=hello.py flask run --debug
- .Net 6 SignalR 实际业务开发中遇到的问题及解决办法
一.SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Server-Sent Events(SSE)服务器事件 3.longpolling 长轮询. 如果客户端开启协商,会按顺序 ...
- 记一次Razor Pages无法编译问题及解决
解决方案写在前面:更新Visual Studio及相关组件,本人版本自17.8.0更新至17.11.4 缘起于公司的一个业务接口,在有一些信息需要在应用内嵌的webview中展示,信息不少,涉及的前端 ...
- 获取sql语句
1.$model->_sql(); 方法实际执行的就是 $model->getLastSql(); 2.fetchSql fetchSql用于直接返回SQL而不是执行查询,适用于任何的CU ...