问题背景
Linux 下,conda 默认的虚拟环境存储在 home 目录下,但 home 目录预先分配的内存有限,所有想将新建的 conda 虚拟环境存放在其他路径下,而又不影响之前的旧的虚拟环境的使用。
举个例子。
创建一个新的虚拟环境之前:
创建了一个新的虚拟环境之后:
新的虚拟环境占用了 4GB 的存储空间。
查看路径信息
查看 conda 信息:
conda info
输出内容如下:
zth@zth-Desktop:~$ conda info
active environment : None
shell level : 0
user config file : /home/zth/.condarc
populated config files : /home/zth/.condarc
conda version : 4.10.1
conda-build version : 3.21.4
python version : 3.8.8.final.0
virtual packages : __cuda=11.4=0
__linux=5.13.0=0
__glibc=2.31=0
__unix=0=0
__archspec=1=x86_64
base environment : /usr/local/anaconda3 (read only)
conda av data dir : /usr/local/anaconda3/etc/conda
conda av metadata url : https://repo.anaconda.com/pkgs/main
channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch
https://repo.anaconda.com/pkgs/main/linux-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/linux-64
https://repo.anaconda.com/pkgs/r/noarch
package cache : /usr/local/anaconda3/pkgs
/home/zth/.conda/pkgs
envs directories : /home/zth/.conda/envs
/usr/local/anaconda3/envs
platform : linux-64
user-agent : conda/4.10.1 requests/2.25.1 CPython/3.8.8 Linux/5.13.0-40-generic ubuntu/20.04.3 glibc/2.31
UID:GID : 1000:1000
netrc file : None
offline mode : False
上面信息中提到的两个路径:
package cache
:缓存路径envs directories
:环境路径
它们按顺序将第一个路径作为默认存储路径。
修改配置文件
gedit .condarc
# 会用 vim 的可以用 vim 编辑:
vi .condarc
由于我的 /usr/
路径下还有大量的空间,所有我这里将 /usr/local/anaconda3/envs
放在第一位。
envs_dirs:
- /usr/local/anaconda3/envs
- /home/zth/.conda/envs
pkgs_dirs:
- /usr/local/anaconda3/pkgs
- /home/zth/.conda/pkgs
保存配置文件后,再次查看 conda 信息,发现已经修改了顺序:
虚拟环境创建
在创建虚拟环境时,提示我没有目标文件夹的权限,需要 sudo
权限,修改一下权限即可。
报错信息如下:
(base) zth@zth-Desktop:~$ conda create -n mmlab python=3.8 -y
NotWritableError: The current user does not have write permissions to a required path.
path: /usr/local/anaconda3/envs/.conda_envs_dir_test
uid: 1000
gid: 1000
If you feel that permissions on this path are set incorrectly, you can manually
change them by executing
$ sudo chown 1000:1000 /usr/local/anaconda3/envs/.conda_envs_dir_test
In general, it's not advisable to use 'sudo conda'.
根据报错提示,给权限:
sudo chown 1000:1000 /usr/local/anaconda3/envs/
接下来愉快地创建新的虚拟环境即可。