pip是个安装包的软件,conda是个环境管理的工具。conda能够安装多个python解释器,pip不行。因此conda在实际开发中是主要用来隔离不同的python版本和Tensorflow&Pytorch的环境(env)的。

一般Python可分为系统自带的和在conda中安装的。我们可以用下列命令查看本机上所有可用的Python环境:

(base) orion-orion@MacBook-Pro /usr % python -m site
sys.path = [
    '/usr',
    '/Users/orion-orion/miniforge3/lib/python39.zip',
    '/Users/orion-orion/miniforge3/lib/python3.9',
    '/Users/orion-orion/miniforge3/lib/python3.9/lib-dynload',
    '/Users/orion-orion/miniforge3/lib/python3.9/site-packages',
USER_BASE: '/Users/orion-orion/.local' (exists)
USER_SITE: '/Users/orion-orion/.local/lib/python3.9/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

然后我们再说两种方式:

conda install xxx:这种方式安装的库都会放在/Users/orion-orion/miniforge3/pkgs目录下。这样的好处是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。

pip install xxx:这是就要两种情况,一种情况就是此时使用的是conda中安装的python,那么xxx会被安装到/Users/orion-orion/miniforge3/lib/python3.9/site-packages文件夹中;如果当前用的是系统的python,那么xxx会通常会被安装到/Users/orion-orion/.local/lib/python3.9/site-packages文件夹中

下面我们来看下conda中的python环境。我们可以用命令conda info --env来查看当前的所有conda环境:

(base) orion-orion@MacBook-Pro miniforge3 % conda info --env
# conda environments:
base                  *  /Users/orion-orion/miniforge3

这里我们只有初始的base环境,即/Users/orion-orion/miniforge3目录,此环境中Python的安装目录为:

/Users/orion-orion/miniforge3/lib/python3.9

而该Python版本对应的包的目录为:

/Users/orion-orion/miniforge3/lib/python3.9/site-packages

可以看到,这个目录下即我们所安装的Python包:

(base) orion-orion@MacBook-Pro site-packages % ls |grep torch
torch
torch-1.8.0.dist-info
torch_tb_profiler
torch_tb_profiler-0.3.1.dist-info
torchtext
torchtext-0.6.0.dist-info
torchvision
torchvision-0.9.0a0.dist-info
  • [1] https://www.zhihu.com/question/395145313
  •