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

前言

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

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仍然存在安装依赖库过于激进的问题,安装同样的packagesconda总会比别的包管理器安装更多的"依赖包",即便有的"依赖包"并不是必须,这会导致你的项目出现不必要的膨胀。
    • 同时,condapackages列表conda list还存在和pip list不一致的问题。

poetry

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

  • poetry使用pyproject.tomlpoetry.lock文件来管理依赖,类似于JavaScript/Node.jsNpmRustCargo,这俩都是非常成熟好用的依赖管理方案。
  • poetry本身并不具有管理Python解释器的功能,推荐和pyenv/pyenv-win使用,可以轻松下载和设置不同版本的Python解释器。
  • poetry的缺点可能是较为复杂,上手困难。由于poetry严格的依赖管理策略,你可能会在安装依赖包时遇到更多的问题。
  • 在国内,poetry还有另一个缺点,无法设置全局镜像源,只可针对单个项目设置镜像源。

pip

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

相关推荐
金銀銅鐵2 小时前
[Python] 借助 turtle 逐字展示唐诗《金缕衣》
python
Python大数据分析@4 小时前
使用大模型MCP采集数据,爬虫已经无门槛
python·网络爬虫
quantdash_cc4 小时前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash
65岁退休Coder4 小时前
LangChain v1.3.4 笔记 - 07 补充:链式调用 LCEL
后端·python·langchain
卷无止境4 小时前
FastAPI 部署在 Nginx 后面到底该怎么配
后端·python
半亩码田4 小时前
C#转Python第3.1篇:Python 的 class 没有访问修饰符?面向对象的另一条路
开发语言·python·c#
Wzx1980125 小时前
python沙箱和docker沙箱你选对了吗?
开发语言·python·docker
Python私教5 小时前
签名 URL 刷新导致审批失效?别急着删掉所有 query
python·安全
牧羊人.3335 小时前
Python 办公自动化从入门到入土|09 数据容器之字典
开发语言·python
Zane19946 小时前
类变量与实例变量:一个共享列表引发的线上事故
后端·python