conda创建虚拟环境时报错: InvalidArchiveError(‘Error with archive /usr/local/Anaconda3
错误
我在使用conda进行虚拟环境创建的时候,弹出来一大堆错误信息,每一条大概是这样的。
InvalidArchiveError(‘Error with archive /usr/local/Anaconda3/pkgs/sqlite-3.36.0-hc218d9a_0stdo5ow0/info-sqlite-3.36.0-hc218d9a_0.tar.zst. You probably need to delete and re-download or re-create this file. Message from libarchive was:\n\nCould not unlink’)
原因
conda创建虚拟环境时,发现有些必要包之前已经被下载过了,然后它就会建立软连接来代替重新下载。但是如果原来的包是由另一个用户下载的,就会出现权限问题,无法创建软连接。
解决方法
开放pkgs(pkgs在anaconda安装路径下)下所有文件的权限,让所有用户都可以访问。注:此方法需要有足够的权限
查找anaconda的安装路径可以看conda的的base环境所在的位置
conda env list | grep base
然后更改pkgs下面的文件权限为777(所有人可读可写可执行)
sudo chmod -R 777 /usr/local/Anaconda3/pkgs/
其他尝试
这里记录了下尝试的其他方案,可能会有用,但是在我这个问题上没有得到解决。
1、关闭所有正在执行的python程序,包括jupyter notebook
ps aux|grep python|grep -v grep|cut -c 9-15|xargs kill -9
2、清理pkgs下的无用的包和缓存数据,详细信息可参考conda clean命令
conda clean -p # 删除未使用的包
conda clean -t # 删除缓存的tarballs包
conda clean -a # 删除所有缓存的数据(包括索引缓存等 )
3、使用–download-only参数
conda create -n environment python=3.8 --download-only
来源:eaxy_z