【转载】pip install 使用多个.local环境

原文地址:

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   了, 这样就完全可以避免很多冲突的问题。

本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注者,如有侵权请与博主联系。
原文地址:https://www.cnblogs.com/devilmaycry812839668/p/14829886.html