Anaconda是一种用来管理Python运行环境的工具,能够快速解决安装各种软件包的依赖问题,所以推荐使用。
如果一台服务器,有多个用户使用,可以使用root把软件安装在/opt
下,然后共享给所有用户使用。其他用户将在自己的home dir
下创建属于自己的虚拟环境,互相之间不会影响。
安装方法
使用root用户登陆系统。
在官方网站下载最新的安装包。
wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh
Copy
然后开始安装:
bash Anaconda3-2022.10-Linux-x86_64.sh
Copy
回车。
输入yes,同意协议,回车。
安装路径,不要直接回车,输入/opt/anaconda3
完成后,输入yes完成初始化。
配置多用户使用
为了让所有用户都能找到相关命令,需要更改全局环境变量:
vim /etc/profile
Copy
在最下面加入:
export PATH=/opt/anaconda3/bin:$PATH
Copy
保存退出后执行
source /etc/profile
Copy
接下来是权限相关的操作。
新建一个名为 conda 的组,当然也可以使用其它名称
groupadd conda
Copy
将需要的用户加入该组,注意,如果是新增一个用户,则执行(记得替换username为你想要的名字):
adduser username conda
Copy
如果是已有用户,则执行(记得替换username为你想要的名字):
usermod -a -G conda username
Copy
将安装目录转给该组
chgrp -R conda /opt/anaconda3
Copy
设置 root 用户与 conda 组的读写权限。root是目录所有者,conda是组所有者。
chmod 770 -R /opt/anaconda3
Copy
设置组继承,使以后新建的文件夹仍属于 conda 组
find /opt/anaconda3 -type d -exec chmod g+s {} +
Copy
设置共享环境只能由 root 修改,其他用户的环境,放在每个用户自己的home目录下。
chmod g-w /opt/anaconda3/envs
Copy
配置conda:
vim /opt/anaconda3/.condarc
Copy
在文件中输入:
envs_dirs:
- /opt/anaconda3/envs
- ~/.conda/envs
Copy
这样,root创建的虚拟环境,就在/opt/anaconda3/envs
中,而其他用户因为没有该文件夹的读写权限,就放在自己的home目录.conda/envs
下。
更换镜像源
清华大学的源比较快,打开官方网站,可以看到源的地址。
vim /opt/anaconda3/.condarc
Copy
将
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/clou
Copy
放在最下面,保存退出。
其他用户使用方法
其他用户登陆后,应该可以直接使用conda命令了。
先初始化:
conda init bash
Copy
注意,上面的bash,要根据你的shell进行更换。
这时候如果退出再登陆,可以看到终端的提示符前面带了一个(base)的字样,这是每个用户的根环境。
建议每个用户为不同的任务创建不同的虚拟环境,例如:运行PyTorch,创建一个环境,运行TensorFlow,创建另外一个虚拟环境,从而解决不同的框架使用不同的组件,版本依赖冲突等问题。
先看看conda的版本:
conda --version
Copy
更新一下conda:
conda update conda
Copy
创建虚拟环境:
conda create --name torch
Copy
激活,或者说进入这个虚拟环境:
conda activate torch
Copy
此时,命令提示符前面会出现当前环境的名字,安装的软件,在当前虚拟环境下生效。
当需要安装一个软件时,可以先搜索一下。
conda search python
Copy
可以在安装时指定版本:
conda install cudnn=8.2.1
Copy
此时,如果安装的版本跟当前环境中其他的包邮冲突,则可能会报错,可以用这样的命令代替:
conda install -c conda-forge cudnn=8.2.1
Copy
conda-forge
是conda的一个频道,不同的频道有不同的版本和相互依赖关系。
当然你可以同时安装多个组件,例如安装PyTorch,可以使用命令:
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
Copy
如果要查看当前环境下的包,可以使用命令:
conda list
Copy
要卸载某个包,用命令:
conda uninstall packagename
Copy
离开当前的虚拟环境:
conda deactivate
Copy
conda收录的包,主要集中在科学计算方面,如果需要的包没有,可以使用pip
安装。使用conda list
命令时,用pip安装的包显示的build项目为pypi。
安装包时,先用conda
搜一下,如果没有,再用pip
安装,这样依赖冲突的可能性就小一些。