当前位置:首页 > 科技  > 软件

11款常用的Python虚拟环境管理器,最受推崇的居然是最后一个

来源: 责编: 时间:2024-07-19 08:01:08 694观看
导读Python 虚拟环境让不同项目在独立的环境里运行,从而让各项目的支持库相互独立,避免在使用不同版本的支持库时导致冲突。当创建新的 Python 项目时,最好先创建一个新的虚拟环境,并在这个虚拟环境中安装 Python 支持库。在

Python 虚拟环境让不同项目在独立的环境里运行,从而让各项目的支持库相互独立,避免在使用不同版本的支持库时导致冲突。rcy28资讯网——每日最新资讯28at.com

当创建新的 Python 项目时,最好先创建一个新的虚拟环境,并在这个虚拟环境中安装 Python 支持库。rcy28资讯网——每日最新资讯28at.com

在虚拟环境中安装、升级、卸载 Python 支持库不会影响其他项目的虚拟环境。rcy28资讯网——每日最新资讯28at.com

此外,使用虚拟环境还有利于项目的移植与复用。rcy28资讯网——每日最新资讯28at.com

本文介绍 11 款常用的 Python 虚拟环境管理器。rcy28资讯网——每日最新资讯28at.com

1. venv

venv 是 Python 内置标准库中创建轻量级虚拟环境的工具。rcy28资讯网——每日最新资讯28at.com

venv 的功能简单,无需单独安装,但如果你需要更好用的虚拟环境管理器,请继续往下看。rcy28资讯网——每日最新资讯28at.com

venvvenvrcy28资讯网——每日最新资讯28at.com

2. virtualenv

virtualenv 是用于创建 Python 虚拟环境的工具。虽然自 Python 3.3 起,virtualenv 的部分功能已经整合到 venv 模块中,但 virtualenv 仍然保留了其特有的优势。rcy28资讯网——每日最新资讯28at.com

相较于 venv,virtualenv 创建虚拟环境的速度更快。rcy28资讯网——每日最新资讯28at.com

此外,virtualenv 提供了更多的扩展和选项,能够灵活地创建多种 Python 版本的虚拟环境,并且可以通过 pip 快速升级。rcy28资讯网——每日最新资讯28at.com

virtualenvvirtualenvrcy28资讯网——每日最新资讯28at.com

3. Pipenv

Pipenv 弥合了 pip、python 和 virtualenv 之间的差距。rcy28资讯网——每日最新资讯28at.com

使用 Pipfile 和 Pipfile.lock 文件,Pipenv 可以指定 Python 的版本和支持库,并与 pyenv 进行交互操作,生成构建项目锁文件。rcy28资讯网——每日最新资讯28at.com

Pipenv 自动为项目创建虚拟环境,在安装、卸载支持库时根据需要更新 Pipfile。rcy28资讯网——每日最新资讯28at.com

Pipenv 的目标是为开发者提供一致的开发环境,不再需要分别使用 pip 和 virtualenv。rcy28资讯网——每日最新资讯28at.com

PipenvPipenvrcy28资讯网——每日最新资讯28at.com

4. pyenv

Pyenv 让开发者可以在多个 Python 版本之间轻松切换,解决了 venv 不能创建不同 Python 版本虚拟环境的限制。rcy28资讯网——每日最新资讯28at.com

Pyenv 支持在不同项目中切换 Python 版本。rcy28资讯网——每日最新资讯28at.com

但是,开发者有时会滥用 pyenv 设置全局的 Python 版本,导致项目之间的 Python 版本混乱,影响项目的复用和开发环境的稳定。rcy28资讯网——每日最新资讯28at.com

Pyenv 的理念很简单,秉承了 UNIX 哲学中单一用途工具的传统,它源自于 rbenv 和 ruby-build,并专门为 Python 进行了修改和适配。rcy28资讯网——每日最新资讯28at.com

与同类工具不同,pyenv 完全由纯 Shell 脚本实现,不依赖 Python,无需担心 Python 引导问题。rcy28资讯网——每日最新资讯28at.com

Pyenv 通过修改操作系统的 PATH 环境变量,可不同 Python 版本之间切换,并能同时运行多个 Python 版本的命令,在不同 Python 环境下进行测试和开发时特别实用。rcy28资讯网——每日最新资讯28at.com

pyenv 主要用于切换 Python 版本,并不直接管理虚拟环境。不过,可以结合 pyenv 与 virtualenv 命令,或使用 pyenv-virtualenv 插件管理虚拟环境。rcy28资讯网——每日最新资讯28at.com

pyenv 目前已经成为 Python 开发者创建虚拟环境的首选工具之一。rcy28资讯网——每日最新资讯28at.com

pyenvpyenvrcy28资讯网——每日最新资讯28at.com

5. Conda

Conda 是由 Anaconda 出品的命令行工具,用于在 Windows、macOS 和 Linux 上管理虚拟环境。rcy28资讯网——每日最新资讯28at.com

它不仅能管理 Python 支持库,还能处理非 Python 支持库,尤其针对数据科学方面的开发进行了优化。rcy28资讯网——每日最新资讯28at.com

Conda 使用自己的 Conda 虚拟环境切换非 Python 依赖项,无需使用复杂的 Docker。rcy28资讯网——每日最新资讯28at.com

与 Poetry 类似,Conda 在构建环境时执行完整的支持库解析,其支持库解析器 libmamba 是用 C++ 实现的,速度更快。rcy28资讯网——每日最新资讯28at.com

Conda 受到了数据科学开发人员的欢迎,但其用户体验仍有改进空间。rcy28资讯网——每日最新资讯28at.com

尽管如此,Conda 仍是 Python 生态系统中使用最广泛的工具之一,尤其是在与 Ray 和 Metaflow 等第三方工具集成时。rcy28资讯网——每日最新资讯28at.com

condacondarcy28资讯网——每日最新资讯28at.com

6. Poetry

Poetry 支持安装和更新支持库,提供锁文件以确保项目的复用,并能构建项目分发包。rcy28资讯网——每日最新资讯28at.com

Poetry 需要 Python 3.8+,跨平台支持 Linux、macOS 和 Windows。rcy28资讯网——每日最新资讯28at.com

Poetry 类似于 Cargo(Rust 的包管理器) 和 npm(Node.js 的包管理器),是 Python 生态系统中使用体验与这两个包最接近的工具。rcy28资讯网——每日最新资讯28at.com

类似于 Conda,Poetry 预先解析完整的依赖图,并按拓扑顺序安装支持库。rcy28资讯网——每日最新资讯28at.com

Poetry 依据 pyproject.toml 管理项目内外的虚拟环境。rcy28资讯网——每日最新资讯28at.com

poetry.lock 文件可以确保项目的复用,但体积较大。rcy28资讯网——每日最新资讯28at.com

此外,Poetry 还兼具构建工具功能,可以发布 Python 包。rcy28资讯网——每日最新资讯28at.com

Poetry 的解析速度较慢,部分是因为 Python 包声明支持库的方式不一致,可能会导致支持库解析的时间较长。rcy28资讯网——每日最新资讯28at.com

PoetryPoetryrcy28资讯网——每日最新资讯28at.com

7. PDM

PDM 的目标是成为新生代 Python 支持库管理工具。rcy28资讯网——每日最新资讯28at.com

与 Poetry 类似,PDM 也是一款快速的支持库解析器,主要用于大型二进制文件分发。rcy28资讯网——每日最新资讯28at.com

它具备灵活强大的插件系统和多功能用户脚本。rcy28资讯网——每日最新资讯28at.com

此外,PDM 还可以使用 indygreg 的 python-build-standalone 安装 Python,并支持类似 pnpm 的集中式安装缓存。rcy28资讯网——每日最新资讯28at.com

PDM 与 Poetry 的主要区别在于,PDM 支持 PEP-582,将虚拟环境集成到项目目录中,避免了传统虚拟环境的手动激活和停用,提高了开发效率。rcy28资讯网——每日最新资讯28at.com

PDMPDMrcy28资讯网——每日最新资讯28at.com

8. Huak

Huak 是使用 Rust 开发的 Python 包管理器。rcy28资讯网——每日最新资讯28at.com

JavaScript 社区目前已经出现了向 Rust 转型的趋势,Huak 也希望将 Rust 引入 Python 生态系统。rcy28资讯网——每日最新资讯28at.com

Rust 生态系统上手体验很出色,Cargo 起了很大的作用。rcy28资讯网——每日最新资讯28at.com

Huak 希望为 Python 提供相同的体验,它的目标是要达到极致速度。rcy28资讯网——每日最新资讯28at.com

Huak 的理念是改善开发者体验,使其在开发 Python 项目时享受与 Cargo 类似的流畅感。rcy28资讯网——每日最新资讯28at.com

虽然目前 Huak 仍处于实验阶段,但其未来潜力巨大,值得关注。rcy28资讯网——每日最新资讯28at.com

HuakHuakrcy28资讯网——每日最新资讯28at.com

9. Pixi

Pixi 是基于 Rust  的 rattler 库开发的,具有显著的性能和安全优势。rcy28资讯网——每日最新资讯28at.com

它的理念是提供类似于 cargo 或 yarn 的开发体验。rcy28资讯网——每日最新资讯28at.com

Pixi 目标是直接取代 Conda,并能像 Conda 一样管理非 Python 依赖项。rcy28资讯网——每日最新资讯28at.com

2024 年 2 月,为了追求更快的速度,Pixi 将后台的 rip 改为 uv。rcy28资讯网——每日最新资讯28at.com

与 Conda 和 mamba 不同,Pixi 提供了自定义类型的锁文件,使其在复用方面领先于 Conda。rcy28资讯网——每日最新资讯28at.com

Pixi 支持可复用的方式安装支持库,并支持 Python、C++ 和 R 等多种语言, 且兼容所有主流操作系统。rcy28资讯网——每日最新资讯28at.com

Pixi 还提供了简洁而强大的命令行界面,使得支持库管理更加简单、高效。rcy28资讯网——每日最新资讯28at.com

PixiPixircy28资讯网——每日最新资讯28at.com

10. Rye

Rye 由 Astral.sh 开发,也是基于 Rust 构建的,旨在提升开发效率和用户体验。rcy28资讯网——每日最新资讯28at.com

与传统的包管理工具相比,Rye 的性能有显著提升,功能也更加丰富。rcy28资讯网——每日最新资讯28at.com

Rye 希望为 Python 开发者提供一站式的工具,让 Python 支持库的安装与管理更加轻松。rcy28资讯网——每日最新资讯28at.com

Rye 使用与 uv 相同的支持库解析器,提供更快的管理体验。rcy28资讯网——每日最新资讯28at.com

Rye 还提供了与 poetry 类似的功能,但速度更快。rcy28资讯网——每日最新资讯28at.com

RyeRyercy28资讯网——每日最新资讯28at.com

11. uv

uv 也是 Astral.sh 出品的 Python 虚拟环境管理器,是当前备受期待的新生代包管理工具。rcy28资讯网——每日最新资讯28at.com

uv 的目标是取代 pip,同时具备与 Cargo 类似的功能。rcy28资讯网——每日最新资讯28at.com

uv 支持 Python 打包工具的所有特性,包括可编辑安装、Git 依赖、URL 依赖、本地依赖、约束文件和源码分发等。rcy28资讯网——每日最新资讯28at.com

Astral.sh 还开发了 Rust 生态中备受开发者喜爱的 ruff (用 Rust 开发的高性能 Python 代码检查和代码格式化工具)。rcy28资讯网——每日最新资讯28at.com

与 poetry 类似,uv 通过 pyproject.toml 管理项目,得益于 Rust 的高效算法,其解析速度至少比 poetry 快一个量级。rcy28资讯网——每日最新资讯28at.com

目前,uv 还没有推出稳定版,但其性能测试结果让人期待。rcy28资讯网——每日最新资讯28at.com

图片图片rcy28资讯网——每日最新资讯28at.com

uv 与主流虚拟环境管理器的性能测试对比rcy28资讯网——每日最新资讯28at.com

uv 在性能方面表现优异,相较于 pip 和 pip-tools,在没有缓存时快 8~10 倍,在有缓存时快 80~115 倍。rcy28资讯网——每日最新资讯28at.com

uv 创建虚拟环境的速度比 venv 快 80 倍,比 virtualenv 快 7 倍,并且不依赖于 Python。rcy28资讯网——每日最新资讯28at.com

总之,uv 作为高效且兼容性强的包管理工具,有望取代 poetry 等工具。rcy28资讯网——每日最新资讯28at.com

随着 uv 功能的不断增强,将来可能会与 Rye 进行合并。rcy28资讯网——每日最新资讯28at.com

图片uv图片uvrcy28资讯网——每日最新资讯28at.com


rcy28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-101713-0.html11款常用的Python虚拟环境管理器,最受推崇的居然是最后一个

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: FlowiseAI:低代码时代的AI革命先行者

下一篇: 我们如何管理软件项目的交付?

标签:
  • 热门焦点
  • 小米官宣:2023年上半年出货量中国第一!

    今日早间,小米电视官方微博带来消息,称2023年小米电视上半年出货量达到了中国第一,同时还表示小米电视的巨屏风暴即将开始。“公布一个好消息2023年#小米电视上半年出货量中国
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 小红书1周涨粉49W+,我总结了小白可以用的N条涨粉笔记

    作者:黄河懂运营一条性教育视频,被54万人“珍藏”是什么体验?最近,情感博主@公主是用鲜花做的,火了!仅仅凭借一条视频,光小红书就有超过128万人,为她疯狂点赞!更疯狂的是,这
  • 电视息屏休眠仍有网络上传 爱奇艺被质疑“薅消费者羊毛”

    记者丨宁晓敏 见习生丨汗青出品丨鳌头财经(theSankei) 前不久,爱奇艺发布了一份亮眼的一季报,不仅营收和会员营收创造历史最佳表现,其运营利润也连续6个月实现增长。自去年年初
  • 10天营收超1亿美元,《星铁》比《原神》差在哪?

    来源:伯虎财经作者:陈平安即便你没玩过《原神》,你一定听说过的它的大名。恨它的人把《原神》开服那天称作是中国游戏史上最黑暗的一天,有粉丝因为索尼在PS平台上线《原神》,怒而
  • 年轻人的“职场羞耻感”,无处不在

    作者:冯晓亭 陶 淘 李 欣 张 琳 马舒叶来源:燃次元“人在职场,应该选择什么样的着装?”近日,在网络上,一个与着装相关的帖子引发关注,在该帖子里,一位在高级写字楼亚洲金
  • 苹果、三星、惠普等暂停向印度出口笔记本和平板电脑

    集微网消息,据彭博社报道,在8月3日印度突然禁止在没有许可证的情况下向印度进口电脑/平板及显示器等产品后,苹果、三星电子和惠普等大公司暂停向印度
Top