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 ...
随机推荐
- [big data] main entry for Spark, Zeppelin, Delta Lake ...
1. 环境搭建 big data env setup 2. Spark 学习 spark 怎么读写 elasticsearch spark 怎么 连接 读写 ElasticSearch Spark 上 ...
- 示例python 批量操作excel统计销售榜品牌及销售额
示例统计销售榜品牌及销售额 import pandas as pd import numpy as np import os os.chdir('F:\\50mat\源数据1000张表格') name ...
- Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具
前言 今天大姚给大家分享一个.NET开源.免费的用于管理 Git 存储库的独立图形用户界面(GUI)工具,它还与 Windows 资源管理器和 Microsoft Visual Studio (201 ...
- Istio实现sidecar自动注入
Istio实现sidecar自动注入 Sidecar模式 在Sidecar部署方式中,你会为每个应用的容器部署一个伴生容器.对于Service Mesh,Sidecar接管进出应用程序容器的所有网络流 ...
- 五分钟入门Webworker
Webworker是基于HTML5提出的一种技术,允许主线程创建Worker线程,将一些任务分配给Worker运行,主线程运行同时,Worker线程在后台运行,互不干扰.等Worker线程完成计算任务 ...
- MDC – Get Started
前言 Angular Material 为了更好的和 Material Design 保持一致, 放弃了自己开发, 改而使用 wrapping MDC 的方式来维护 Angular Material. ...
- 开发板、windows、虚拟机互相ping通/ VMNET0、VMNET1、VMNET8释义
当前环境:板子通过网线连接windows 问题: 我当前的板子可以ping通windows,windows也能ping通ubuntu.但是板子却ping不通ubuntu. 原因: ubuntu通过NA ...
- Kubernetes Pod原理(十六)
一.Pod Kubernetes 最基本的调度单元 前面我们了解了 Kubernetes 的基本架构,以及如何使用资源清单在集群中部署一个应用.我们也了解到了 Pod 是 Kubernetes 集群中 ...
- el-table 宽度自适应bug
和 flex 一起使用的时候会有这个问题.只能自动变宽不能自动变窄. 在 flex-grow:1; 的那一层设置 overflow: auto;
- 数据库排行榜|当 DB-Engines 遇见墨天轮国产数据库排行
提到数据库排名,此时脑海里浮现出的是什么?是 DB-Engines,还是墨天轮数据库排行?两者间有什么区别?下面来聊一下业内这两个知名数据库排名平台. 本篇文章约有 3000 字,预计阅读时间 7 分 ...