Post

不同权限用户安装Conda时的路径分析

本教程写于实习期间,仅适用于 JumpServer Open Source Bastion Host

切换用户指令

不同用户之间切换 sudo su <username>

切换到 root用户 sudo -i

conda默认安装路径

第一种情形 未进入conda环境,即命令行前不带(base):仅使用 /usr/lib/python<x.x>/site-packages 下的 pip环境

第二种情形 conda activate base 进入conda环境,命令行前带 (base):

  1. root/非root用户 在 conda(base)环境下:

    非root用户共用同一个 pip(/usr/bin/pip)和 conda(/usr/bin/conda)环境,此 conda 环境是服务器唯一且共用的 (base) 环境,每个用户 conda env list 都会显示

    /usr/.conda/envs/ 下的conda环境是公共的,不同用户 ~/.conda/envs 下个人创建的 conda环境 是相互隔离的

    root用户能看到所有非root用户创建的 conda 环境,conda activate <conda_env_path>/<conda_env_name> 进入对应环境

    pip install 安装路径 /usr/lib/python<x.x>/site-packages

    conda install 安装路径 /usr/.conda/envs/<condaenvname>/bin

    安装包主体放在 lib 中,安装包的快捷方式放在 bin

  2. 非root用户 在个人创建的 conda(非base)环境下:

    pip install 安装路径 ~/.conda/envs/<conda_env_name>/lib/python<x.x>/site-packages

    conda install 安装路径 ~/.conda/envs/<conda_env_name>/bin

    可用 /home/<user_name>/ 替换 ~

  3. root用户 在个人创建的 conda(非base)环境下:

    pip install 安装路径 /root/.conda/envs/<conda_env_name>/lib/python<x.x>/site-packages

    conda install 安装路径 /root/.conda/envs/<conda_env_name>/bin

一个 pip 环境依赖于 一个python环境。~/.conda/envs/下不同 conda环境对应不同 python环境,对应不同 pip环境。

自定义conda安装路径

  • 法一:修改 ~/.condarc 文件,将 envs_dirs 改成自定义路径<path>后,执行 conda info,在 envs directories条目查看

    1
    2
    
      envs_dirs:
        - <path>
    
  • 法二:下载 Anaconda,指定路径安装,指定的安装路径优先于默认路径 ~/.conda/envs/。执行 conda info,在 envs directories条目查看

  • 针对以上两方法,如果非root用户没有写入指定路径<path>的权限,conda环境仍然安装在默认路径 ~/.conda/envs/。若使用 sudo conda create ..,conda环境安装在root用户的路径下 /root/.conda/envs/

在conda环境下,conda installpip install 安装文件至 ~/.conda,和 ~/.local~/.cache无关。不在conda环境下, pip install 安装文件至 /usr/lib/python<x.x>/site-packages

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.