Pip VS Conda

2024-08-12 {Tech 技术} [python, environment]

来自 知乎用户 6dQvdv(已销号)在 工具篇:conda and pip文章内容有误,注意甄别)的评论:

作者或许弄错了,在这里简单讨论一下:

  1. anaconda or miniconda 的安装目录/pkgs,这个目录是 package cache directory 包的缓存目录,可以在命令行直接输入 conda info 命令查看。conda install 以及 pip install(在激活 conda 环境中使用的 pip) package 都可以在 current_env/lib/site-packages 找到(windosws 下,其它系统如 unix,安装在 env/lib/pythonX.Y/site-packages 下)。 参考:https://stackoverflow.com/questions/31384639/what-is-pythons-site-packages-directory

  2. python -m site 打印的 list,并没有看到官方提及按照 import order 排序(是我没找到?)。不过,<anaconda or miniconda 的安装目录>/pkgs 优先级肯定也是最低的,env/lib/site-packages 里面安装的包优先级肯定是最高的,否则虚拟环境怎么互相隔离呢? 参考:https://stackoverflow.com/questions/122327/how-do-i-find-the-location-of-my-python-site-packages-directory#46071447 以及 https://docs.python.org/3/library/site.html

    另外,关于在 conda 中使用 pip ,可以参考官方的说法: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#pip-in-env

简言之,conda 中可以使用 pip,但 conda 并不兼容 pip,pip 安装的包越多,越容易引发包版本依赖问题,所以能用 conda 安装的包先用 conda 安装,不能的再到激活的虚拟环境里用 pip 安装。

同时可以参考 Anaconda 给出的建议:https://www.anaconda.com/blog/using-pip-in-a-conda-environment

简要概括如下: