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

你好,我是坚持分享干货的 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

欢迎围观我的朋友圈

👆每天更新所想所悟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值