在CONDA环境中仅使用PIP有哪些陷阱?

背景

官方文档和该博客在同一网站上-建议先安装尽可能多的要求,conda然后再使用pip。显然,这是因为conda将不知道对依赖项所做的任何更改pip,因此将无法正确解析依赖项。

现在,如果一个人专有地使用pip并且不用安装任何东西conda,那么似乎可以合理地期望conda不需要知道由它进行的任何更改pip-因为conda有效地变成了隔离依赖关系和管理版本的单纯工具。但是,这与官方建议背道而驰,因为使用不会安装尽可能多的要求conda

因此问题仍然存在:pipconda环境中使用是否存在任何已知的缺点

类似主题

这里已经涉及类似的主题,但是没有涵盖仅环境中使用的情况我也来过这里:pipconda

梅尔

不确定是否可以对此提供全面的答案,但是想到的一些主要问题是:

  1. 缺乏对非Python依赖项解析的深入支持随着时间的推移,越来越多的捆绑非Python资源的轮子已经可用,但作为通用软件包管理器而不是特定于Python的Conda所提供的覆盖范围还远远没有达到。对于进行互操作计算的任何人(例如reticulate),我希望Conda会受到青睐。

  2. 优化的库有点与第一点有关,但是Anaconda团队已努力构建软件包的优化版本(例如MKL用于numpy)。不确定是否可以通过PyPI使用等效项。1个

  3. 跨环境浪费的冗余当程序包和环境在同一卷上时,Conda使用硬链接,并支持跨整个卷的软链接。这有助于最大程度地减少复制在多个环境中安装的任何程序包。

  4. 出口复杂化导出(conda env export)时,Conda不会提取所有已pip安装的软件包-仅提取来自PyPI的软件包。也就是说,它将丢失从GitHub等安装的内容。如果确实采用了仅pip路由,则我认为一种更可靠的导出策略是使用pip freeze > requirements.txt,然后将YAML改为

    channels:
      - defaults
    dependencies:
      - python=3.8  # specify the version
      - pip
      - pip:
        - -r requirements.txt
    

    用它来重新创建环境。

综上所述,我很容易想到,对于某些人(大多数人是方便),尤其是那些倾向于纯粹使用Python工作的人来说,这些都不重要。但是,在这种情况下,我不明白为什么不完全放弃Conda并使用Python特定的虚拟环境管理器。


[1]否则请有人纠正我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

pip使用哪些端口?

来自分类Dev

除了openGLUT和x-windows,在Linux环境中创建窗口还有哪些选择?

来自分类Dev

pylint在conda环境中失败

来自分类Dev

带有pip -e的Conda环境:ModuleNotFoundError:没有名为“ setuptools”的模块

来自分类Dev

在崇高的文字3中使用conda环境

来自分类Dev

将IntStream.generate与有状态的IntSupplier一起使用时,存在哪些陷阱?

来自分类Dev

使用本地pip安装导出conda环境

来自分类Dev

PyCharm中的WSL Conda环境

来自分类Dev

未隔离conda虚拟环境中的pip安装软件包

来自分类Dev

如果我使用pip安装Anaconda中未包含的软件包,是否还会在conda环境中安装软件包?

来自分类Dev

在conda环境中使用pip,是否仅将软件包安装在该conda环境中?

来自分类Dev

python conda:创建了一个环境,但是没有使用conda的python

来自分类Dev

对前端数据使用静态JSON文件的陷阱有哪些?

来自分类Dev

检查Makefile中现有的conda环境

来自分类Dev

导出所有创建的conda环境

来自分类Dev

在conda环境中运行pip

来自分类Dev

在带有conda环境的Visual Studio Code中使用R

来自分类Dev

有没有办法从Spyder中访问在conda环境中设置的环境变量?

来自分类Dev

Conda环境:几个环境文件-指定Pytorch的仅CPU版本

来自分类Dev

Anaconda环境中的pip vs conda

来自分类Dev

带有pip -e的Conda环境:ModuleNotFoundError:没有名为“ setuptools”的模块

来自分类Dev

台式机上的硬链接文件有哪些陷阱?

来自分类Dev

使用systemd在conda环境中运行气流

来自分类Dev

Anaconda提示中有哪些环境?

来自分类Dev

环境变量名称中哪些字符有效

来自分类Dev

终端中没有激活 conda 环境的指示

来自分类Dev

与非并行计算环境相比,在并行计算环境中创建随机数有哪些潜在挑战?

来自分类Dev

anaconda 环境的 pip 版本错误。使用 `conda activate` 激活 env 时,我应该如何更正 pip 版本?

来自分类Dev

在 Dockerfile 中激活 conda 环境并在 gitlab ci 中使用

Related 相关文章

  1. 1

    pip使用哪些端口?

  2. 2

    除了openGLUT和x-windows,在Linux环境中创建窗口还有哪些选择?

  3. 3

    pylint在conda环境中失败

  4. 4

    带有pip -e的Conda环境:ModuleNotFoundError:没有名为“ setuptools”的模块

  5. 5

    在崇高的文字3中使用conda环境

  6. 6

    将IntStream.generate与有状态的IntSupplier一起使用时,存在哪些陷阱?

  7. 7

    使用本地pip安装导出conda环境

  8. 8

    PyCharm中的WSL Conda环境

  9. 9

    未隔离conda虚拟环境中的pip安装软件包

  10. 10

    如果我使用pip安装Anaconda中未包含的软件包,是否还会在conda环境中安装软件包?

  11. 11

    在conda环境中使用pip,是否仅将软件包安装在该conda环境中?

  12. 12

    python conda:创建了一个环境,但是没有使用conda的python

  13. 13

    对前端数据使用静态JSON文件的陷阱有哪些?

  14. 14

    检查Makefile中现有的conda环境

  15. 15

    导出所有创建的conda环境

  16. 16

    在conda环境中运行pip

  17. 17

    在带有conda环境的Visual Studio Code中使用R

  18. 18

    有没有办法从Spyder中访问在conda环境中设置的环境变量?

  19. 19

    Conda环境:几个环境文件-指定Pytorch的仅CPU版本

  20. 20

    Anaconda环境中的pip vs conda

  21. 21

    带有pip -e的Conda环境:ModuleNotFoundError:没有名为“ setuptools”的模块

  22. 22

    台式机上的硬链接文件有哪些陷阱?

  23. 23

    使用systemd在conda环境中运行气流

  24. 24

    Anaconda提示中有哪些环境?

  25. 25

    环境变量名称中哪些字符有效

  26. 26

    终端中没有激活 conda 环境的指示

  27. 27

    与非并行计算环境相比,在并行计算环境中创建随机数有哪些潜在挑战?

  28. 28

    anaconda 环境的 pip 版本错误。使用 `conda activate` 激活 env 时,我应该如何更正 pip 版本?

  29. 29

    在 Dockerfile 中激活 conda 环境并在 gitlab ci 中使用

热门标签

归档