pipenv、poetry、venv 怎么选?一分钟搞懂

Poetry vs pipenv:Windows开发者该如何选择?实测对比+完整迁移指南 本文深入对比了Poetry和pipenv在Windows平台上的Python依赖管理工具选择,从安装配置、依赖解析到虚拟环境管理进行全面分析。通过实测数据展示Poetry在性能和功能上的优势,并提供从pipenv迁移到Poetry的完整指南,帮助开发者优化工作流程。 阅读详情

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

作者:happylittle,出处:https://zhuanlan.zhihu.com/p/663735038

virtualenv

太老,除非你还在使用 python 2,否则不推荐。

venv

python 自带的虚拟环境管理,简单是它的优势,也是它的劣势。

  • 只能创建虚拟环境,不能指定系统不存在的 python 环境版本,不能管理系统中的环境列表(例如选择一个已经创建好了的虚拟环境)。

  • venv 的虚拟环境默认是存放在项目文件夹里的,这会影响项目文件的管理。

pipenv :

requests 库作者 Kenneth Reitz 大神的作品。但 pipenv 并不稳定,例如,如果你运行 pip install ...两次,结果可能不一样,pipenv 曾承诺解决这个问题,但实际上,它只是多次尝试运行 pip install <单个包>,直到结果看起来差不多符合规范。

显然,这样的方式更慢,但最终问题依然存在。

anaconda / conda

如果是科学计算的新手,推荐使用,但:

  • anaconda 实在过于臃肿,它的安装包里包括了众多科学计算会用到的 packages,安装后动辄 5-6 个 G。

  • anaconda 有个不包含 packages 的版本,叫 miniconda,但 miniconda 仍然存在安装依赖库过于激进的问题,安装同样的 packages,conda 总会比别的包管理器安装更多的“依赖包”,即便有的“依赖包”并不是必须,这会导致你的项目出现不必要的膨胀。

  • 同时,conda 的 packages 列表“conda list”还存在和“pip list”不一致的问题。

  • anaconda 由 python 编写,所以 anaconda 运行速度非常慢。使用 PyCharm 调用 conda 来创建环境时更是慢的离谱。

poetry

唯一的真神。poetry 没有上述缺点,同时轻便强大。

  • poetry 使用 pyproject.toml 和 poetry.lock 文件来管理依赖,类似于 JavaScript/Node.js 的 Npm 和 Rust 的 Cargo,这俩都是非常成熟好用的依赖管理方案。

  • poetry 本身并不具有管理 Python 解释器的功能,推荐和 pyenv/pyenv-win 使用,可以轻松下载和设置不同版本的 Python 解释器。

  • poetry 的缺点可能是较为复杂,上手困难。由于 poetry 严格的依赖管理策略,你可能会在安装依赖包时遇到更多的问题。

  • 在国内,poetry 还有另一个缺点,无法设置全局镜像源,只可针对单个项目设置镜像源。

pip

你应该仅使用 pip 来安装 poetry,就像 IE 的唯一用途是下载 Chrome。

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

95879c897768f97bf2050013f4eda45b.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

虚拟环境:你肯定用过,但不一定了解 | Python | venv | pipenv | poetry 对于个人学习和小项目,venv足够使用对于团队协作项目,推荐使用pipenv或poetry如果项目需要打包发布,poetry是最佳选择无论选择哪种工具,重要的是要理解虚拟环境的核心概念,并在实践中保持一致的使用方式。这样才能充分发挥虚拟环境的优势,提高Python项目的开发效率和质量。开源的包管理和环境管理系统特别适合科学计算和数据科学项目可以管理Python和非Python的依赖支持跨平台使用高性能的Python包安装器和虚拟环境管理工具使用Rust编写,速度快,资源占用少。 阅读详情

相关推荐

Python虚拟环境全解析:从venv到Poetry的依赖管理与项目隔离实践

在Python开发中,依赖管理和环境隔离是保障项目稳定性的基础。其核心原理是通过创建独立的Python解释器副本和site-packages目录,实现不同项目间第三方库的版本隔离。这项技术的核心价值在于解决依赖冲突、确保环境一致性,并提升团队协作效率。无论是数据分析、Web开发还是机器学习项目,都需要通过虚拟环境来管理依赖。常见的工具包括Python标准库中的venv、经典的virtualenv,以及更现代的依赖管理工具pipenv和Poetry。其中,Poetry凭借其高效的依赖解析和完整的项目生命周期管

weixin_30328063的博客 319

【Python】环境管理 venv、pipenv、conda、poetry 对比

当你在使用Python时,创建虚拟环境是一种良好的实践,它可以帮助你隔离项目的依赖,防止不同项目之间的冲突。以下是四种常见的创建虚拟环境的方式:venv、pipenv、conda和poetry的简要对比。

jczwilliam312的博客 3720

Python虚拟环境管理:从venv到Poetry,告别依赖混乱

虚拟环境是Python开发中实现项目依赖隔离的核心技术,通过创建独立的Python解释器和包目录,解决不同项目间的版本冲突问题。其原理基于修改sys.prefix和sys.executable路径,确保包导入和执行都指向隔离环境。这一技术价值在于提升开发效率和项目可维护性,避免全局包污染。在实际应用场景中,开发者常面临虚拟环境激活状态易丢失、IDE配置不一致等挑战。针对这些痛点,现代工具链如Poetry和PDM提供了更可靠的解决方案,它们将项目配置、依赖管理和虚拟环境绑定在一起,实现了真正的环境隔离。本文以

weixin_33831673的博客 403

[Python] 虚拟环境venv、pipenv、poetry、conda如何选择?1分钟搞懂

1分钟搞懂python虚拟环境venv、pipenv、poetry、conda的区别

weixin_42174385的博客 2665

poet-v:Vim 遇到 Poetry 和 Pipenv 虚拟环境

诗人-v Poet-v 是一个 vim/nvim 插件,用于检测和激活你的 python或项目中的虚拟环境。 它受到及其 pipenv 衍生产品启发(并且非常相似)。 然而,它还增加了与由诗歌创建的虚拟环境交互的能力,并与 (和 )很好地集成。 安装 使用您首选的包管理器进行安装。 例如使用 : call dein#add ( ' petobens/poet-v ' ) 用法(命令) Poet-v 只提供了两个命令: PoetvActivate :激活相应的诗歌或 pipenv venv(有关顺序的详细信息,请参见下文)并强制 jedi(和 deoplete-jedi)使用它(如果安装了 / )。 PoetvDeactivate :停用当前的 venv。 还有一个函数poetv#statusline()可以检索当前的venv 名称。 例如,它可以用于在状态行中显示此类信息

GMSL Strapping Pins CFG0/CFG1 应用

如果 0x13.bit3 = 0, 则是链路没有 Locked,需要去排查下具体问题(通常是工作模式配置问题)如果遇到 Link 无法建立(Locked),电源没有问题的情况下,多半是加串器和解串器的工作模式不匹配。芯片在上电时,会检测这两个管脚的电压,根据不同的电压值,芯片进入到不同的工作模式。一对加串器和解串器,只要工作模式匹配得当,Link Locked,便能够正常工作。ADI 已经充分考虑了用户的需求,尽可能的降低的芯片的使用和配置复杂度。GMSL 的解串器也是类似的配置,具体请参考对应的规格书。

iStoneWalker的博客 1273

【Python】创建虚拟环境的四种方式(venv | pipenv | conda | poetry)

文章目录引言教程venv安装用法pipenv安装用法conda安装用法总结拓展参考插画 引言 什么是虚拟环境?虚拟环境是一个 Python 环境,其中安装的 Python 解释器、库和脚本与安装在其他虚拟环境中的那些是隔离的,而且(默认情况下)安装在系统 Python 中的任何库(即作为操作系统的一部分安装的库)也是隔离的。 为什么需要虚拟环境?这是由于 pip 的特性决定的,同一个环境下,仅允许安装每个包的一个版本。假设,这里有三个包,分别为:A、B 和 C。A 包依赖于 B 包的 v1.0 版本,而.

XavierJ的博客 13万+

银河麒麟v10-arm版离线安装Portainer

银河麒麟v10-arm版离线安装Portainer

q_hsolucky的博客 3052

Python环境管理大比拼:venv、Virtualenv、Conda、Pipenv、Poetry、UV,如何选择,全在这里了?

工具虚拟环境依赖管理多Python版本非Python依赖打包发布性能学习成本适用场景venv✔️❌❌❌❌高低简单隔离Virtualenv✔️❌✔️❌❌高低兼容 Python 2/多解释器Conda✔️✔️✔️✔️❌中中科学计算/非 Python 依赖Pipenv✔️✔️❌❌❌低中替代传统依赖管理(逐渐淘汰)Poetry✔️✔️❌❌✔️中高现代项目开发/开源库发布uv✔️✔️❌❌❌极高低高性能依赖安装/替代pip。

胡云峰的博客 4753

封包(一)(雷电模拟器+ProxyDroid+查尔斯3.93+WPE)

自从换了工作就没有给大家分享一些干活,在加上陪伴自己的孩子没有时间更新文章了,这只能在晚上给大家写文档了,我最近在游戏公司上班,研究封包。我把这些东西都做成了笔记,我想有些东西是大家都想弄明白d ...

寒梅独自开 1万+

win2016 php mysql_Windows Server 2016 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程 | 系统运维...

准备篇一、环境说明:操作系统:Windows Server 2016PHP版本:php 7.1.0MySQL版本:MySQL 5.7.17.0二、相关软件下载:1、PHP下载地址:2、MySQL下载地址:3、Microsoft Visual C++ 2010 可再发行组件包(安装MySQL需要此插件)4、Visual C++ Redistributable for Visual Studio 20...

weixin_34794420的博客 1378

Python虚拟环境完全指南:venv、pipenv、poetry终极对比分析

Python虚拟环境是现代Python开发中不可或缺的工具,它能帮助开发者隔离项目依赖、管理不同版本的包,以及确保项目的可重复性。无论你是Python初学者还是经验丰富的开发者,掌握虚拟环境的使用都能显著提升你的开发效率。在这篇完整的指南中,我们将深入对比分析Python生态系统中最流行的三种虚拟环境工具:**venv**、**pipenv**和**poetry**,帮助你选择最适合的工具。 #

gitblog_00864的博客 859

Tiff、jpg图片怎么样添加地理坐标信息

Tiff、jpg图片怎么样添加地理坐标信息 一般,外业调查只有地图资料,如专题图、或者地形图,如何把这些地图资料的扫描地图带上坐标信息,从而内业实现信息化处理?以上问题,可以解决,但根据不同情况有不同的处理方法。     第一种,上面有经纬度外框,图片是矩形,但是没有地理信息。 通过图框的两个角的坐标确定范围,分别是左上(140°E,30°N);右下(150°W,30°N) 解决方

树木_xzw的博客 2万+

管理 Python 环境和依赖关系的工具 venv、virtualenv、pipenv 、poetry 、 miniforge 和 anaconda 的区别

venv`、`virtualenv`、`pipenv`、`Poetry`、`Miniforge` 和 `Anaconda` 都是用于管理 Python 环境和依赖关系的工具,但它们在功能和使用场景上有一些显著的区别。venv、virtualenv、pipenv、Poetry、Miniforge 和 Anaconda 都是用于管理 Python 环境和依赖关系的工具,但它们在功能和使用场景上有一些显著的区别。AnaConda 是一个开源的包管理和环境管理系统,支持多种语言和工具,而不仅仅是 Python。

weixin_55010563的博客 1118

【libnice】meson + vs2022,生成win32工程

libnice

突围 947

华为OD机试真题 新系统2026-04-15 C++ 实现【失灵的键盘】

有一个键盘有2个按键失灵了,按下这些键时会连续输出其他键对应的字符两次。具体如下: 1. 按下j键一次,屏幕上显示uu(两个连续的u);  按下b键一次,屏幕上显示t(两个连续的t) 2. u键和t键是好的,按下u键一次时,屏幕只会显示一次u(正常按键);按下t键一次时,屏幕只会显示一次t(正常按键) 3. 假定屏幕上连续显示两个t一定是按了一次b键,而不是两次t键;假定按键t之后不会紧接着按键b,即tttt转义为两个b,而不可能是tb

MISAYAONE的博客 212

【Python】环境管理怎么选择【virtualenv】【pipenv】【 poetry】【 conda】

刚入门Python,看到PyCharm的环境管理选择有好几个选择,pipenvvenvconda,只知道这些都可以用来管理Python环境的,但不知道这些环境有什么区别,所以,本文将对这些环境管理进行总结。

Java技术栈,分享不断学习、不断超越、不断积累的历程! 2067

iStoreOS等软路由插件卸载的残留?分享一款软路由高级卸载工具,自定义卸载,轻松解决卸载残留问题

iStoreOS用户看过来!👀 还在被插件包残留困扰吗?本文分享一款“高级卸载”的插件,助你深度清理iStoreOS系统,彻底解决软件卸载不净的痛点,告别频繁恢复出厂设置的烦恼!🚀

XiaoqiangClub的博客 1546

管理 Python 环境和依赖关系的工具 venv、virtualenv、pipenv 、poetry 、 miniforge 和 anaconda 的区别...

管理 Python 环境和依赖关系的工具 venv、virtualenv、pipenv 、poetry 、 miniforge 和 anaconda 的区别 venv、virtualenv、pipenv、Poetry、Miniforge 和 Anaconda 都是用于管理 Python 环境和依赖关系的工具,但它们在功能和使用场景上有一些显著的区别。以下是它们的主要区别: venv 轻量级:...

weixin_28007513的博客 378

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

别再只用pip install了!Python虚拟环境选型指南:venv、pipenv、poetry、conda到底怎么选?

本文深入探讨了Python虚拟环境工具的选择策略,对比了venv、pipenv、poetry和conda在不同场景下的优劣势。通过详细的评估维度和实战案例,帮助开发者根据项目类型(如Web开发、数据科学等)选择最适合的虚拟环境工具,提升开发效率和团队协作质量。

weixin_30632883的博客 314

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

从venv到Pipenv/Poetry:Python虚拟环境工具选型与进阶指南

本文深入解析Python虚拟环境工具venv、Pipenv和Poetry的核心差异与适用场景,提供从基础隔离到智能依赖管理的进阶指南。针对依赖冲突、环境复现等痛点,对比各工具特性并给出实战建议,帮助开发者根据项目复杂度选择最佳方案,提升Python开发效率。

weixin_33714884的博客 473

Anaconda 全环境工具链 路径树管理 和 环境创建 指南(Poetry、Pipenv、venv、uv、Hatch)

以基础解释器 python=3.11 版举例,示例 Poetry、Pipenv、venv、uv、Hatch 环境的创建(路径的使用)记得要勾选“从基础解释器继承软件包”,以使项目内 .venv 能继承完整的 python3.11 基础工具链 ,而非另行安装。相当于为系统安装了不同的 python 版本 ,但统一度更高,灵活性更强。

AITechLab 的博客 1379

Python 虚拟环境到底怎么选?venv/conda/pipenv/poetry 一张对比表 + 9 个真实踩坑

这三个需求决定了你该选哪个工具。选错不会立刻报错,但会在半年后以"我这里能跑,线上跑不起来"的形式还给你。:先 conda 装,再 pip 装;pip 只装 conda 里没有的包;,提交上去既污染仓库又无法复用。### 坑 7:venv 不能直接"移动"### 坑 3:conda 和 pip 混用把环境搞坏典型操作:先。### 坑 9:多 Python 版本把命令搞混。### 坑 6:虚拟环境目录被提交到 Git.venv。,再套一层 venv 只会增加镜像体积。,可能与你的代码不兼容。

小小张说故事的博客 288

Python虚拟环境管理全攻略:venv/pipenv/conda/poetry对比与实践

Python虚拟环境通过隔离不同项目的依赖包版本,彻底解决了"包冲突"难题。时,我发现其内置的Python环境已经预装了所有主流工具。对于需要演示环境差异的场景,平台的一键部署功能能快速生成可分享的在线实例,比本地演示更加直观高效。可指定Python版本,特别适合需要特定版本解释器的数据科学项目。在同时使用多种工具时,建议:用conda管理基础Python版本,用poetry管理项目依赖;Anaconda提供的环境管理器,优势在于能管理非Python依赖(如C++库)。统一管理项目元数据和依赖。

PearlOwl67的博客 955

Pipenv 迁移完全指南:从 requirements.txt、pip、Poetry、Conda 平滑过渡到 Pipenv

本指南基于 Pipenv 官方迁移文档,系统讲解如何从 `requirements.txt`、pip、virtualenv/venv、Poetry、Conda、pipenv-setup 等多种既有依赖管理工具迁移到 Pipenv,覆盖基本流程、开发依赖拆分、复杂约束处理、常见坑位与排查手段,并辅以源码级实现细节说明迁移背后 Pipenv 到底做了什么,帮助你在迁移后获得可复现、可审计、防篡改的 P

gitblog_01197的博客 189
上一篇: React 还是 Vue?我对 Web 前端现状的看法
下一篇: 那些让人哭笑不得的 bug!
codingpy
博客等级 码龄11年 1873粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值