原文地址:
https://zhuanlan.zhihu.com/p/351468170
================================
我们都知道anaconda可以安装不同的python环境,每次使用的时候conda activate 一下就好,但是有时候工作中提供了几个conda环境,我也不能自己去更新这个conda环境,因为大家一般是没有权限的.安装的时候一般就是pip install xxx --user.
--user的话是在home目录中新建一个.local文件,但是如果不同的环境都用--user的话就是会不断地修改.local文件,这样显然就乱套了.
用下面这个脚本可以给不同的环境新建.local文件.比如pytorch1.7的环境,就新建一个名字叫pt1.7的文件,里面写入以下内容,激活的时候source (pt1.7文件的路径)就可以啦.
ENV_HOME=你的路径 ENV_NAME=pt1.3v1 ENV_NAME=pt1.7 GCC_ROOT=${ENV_HOME}/dep/gcc-5.4 CONDA_ROOT=${ENV_HOME}/env/miniconda3.7 CUDA_ROOT=${ENV_HOME}/dep/cuda-9.0-cudnn7.6.5 MPI_ROOT=${ENV_HOME}/dep/openmpi-4.0.3-cuda9.0-ucx1.7.0 UCX_ROOT=${ENV_HOME}/dep/ucx-1.7.0 NCCL_ROOT=${ENV_HOME}/dep/nccl_2.5.6-1-cuda9.0 export CUDA_HOME=${CUDA_ROOT} export MPI_ROOT=${MPI_ROOT} export NCCL_ROOT=${NCCL_ROOT} export LD_LIBRARY_PATH=${GCC_ROOT}/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=${CONDA_ROOT}/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=${CUDA_ROOT}/lib64:${CUDA_ROOT}/extras/CUPTI/lib64/:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=${MPI_ROOT}/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=${UCX_ROOT}/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=${NCCL_ROOT}/lib/:$LD_LIBRARY_PATH export PIP_CONFIG_FILE=${CONDA_ROOT}/envs/${ENV_NAME}/.pip/pip.conf export LD_PRELOAD=${MPI_ROOT}/lib/libmpi.so #mkdir ${HOME}/.local.${ENV_NAME} export PYTHONUSERBASE=${HOME}/.local.${ENV_NAME} export PATH=${PYTHONUSERBASE}/bin:${GCC_ROOT}/bin:${CONDA_ROOT}/bin:${MPI_ROOT}/bin:${CUDA_ROOT}/bin:$PATH #source activate ${ENV_NAME} source ${ENV_NAME}
====================================
上面内容虽然没有太明白,尤其是这个脚本具体改怎么设置怎么具体来用,但是这个告诉我们来一件事情,就是在linux中使用pip为python安装包的时候如果加上了 --user 的话那么就会将包安装到 /home/用户名/.local 文件夹下面。
如果可以有权限使用conda自己创建环境的话,那么在conda自建环境下使用pip安装pypi上的包时就不需要使用 --user 了, 这样就完全可以避免很多冲突的问题。