Conda更新或安装包时出现Verifying transaction: failed+RemoveError的解决方法

本文详细记录了解决Anaconda更新错误及在Jupyter中为多个虚拟环境添加Kernel的过程。通过使用conda update --force conda强制更新,解决了RemoveError问题,并介绍了如何在每个虚拟环境中安装ipykernel并添加Kernel。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

懒人请直接使用下面代码先更新conda,即可。

conda update --force conda

有兴趣看下面求索过程👇👇👇

为了图方便,想使用conda install nb_conda来让jupyter notebook或jupyter lab自动生成对应所有虚拟环境的Kernal。

conda install nb_conda

不料,懒人没做成,安装失败,最末尾显示:

Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: failed

RemoveError: 'requests' is a dependency of conda and cannot be removed from
conda's operating environment.
RemoveError: 'setuptools' is a dependency of conda and cannot be removed from
conda's operating environment.

意思是无法删除一些库,这个时候其实用下面这个方法可以绕开这个问题:在每个虚拟环境中依次执行:

conda install ipykernel
python -m ipykernel install --name my(在文件夹里的名称) --display-name my(想在jupyter显示名称)

这样就添加了核,在C:\ProgramData\jupyter\kernels(具体看添加核时的说明)路径下其实可以看到你添加的所有核的细节。

但是我没懒成还是不服!继续解决RemoveError的问题,直到找到了Github讨论,里面讨论得非常激烈,主要问题就是需要进行conda的更新:

conda update conda

但是在base里还是会出错,仍显示RemoveError,再看到说要退出所有虚拟环境再更新,使用下面命令:

conda deactivate
conda update conda

还是不成,问题依旧。最后!看到这个救星:

使用:(注意!一定要回到base环境执行,不然....就看这篇博客解决吧:anaconda装环境遇到无法定位程序输入点OPENSSL_sk_new_reserve……问题

conda update --force conda

成功更新conda!至此,再进入base环境做你想做的事吧!

 

对于conda install nb_conda我还有想说的,因为执行后还是有问题,还是没有懒对!

执行后jupyter lab并没有自动识别出所有虚拟环境,jupyter notebook也有问题,真是让人揪心!最后显示了些这个:

这和另一篇博客对应上了,他给出了解决方案:jupyter-lab识别anaconda虚拟环境

# 先
conda install nb_conda ipykernel
# 激活某个环境后运行下面命令
python -m ipykernel install --name my(在文件夹里的名称) --display-name my(想在jupyter显示名称)

是不是很眼熟。。。最后就是省了在每个环境install ipykernal的步骤(但是我还是需要一个一个安装kernal好像,可能他是在全局conda install的)。啊,还是老老实实一个一个弄吧。👇👇👇

在每个虚拟环境中依次执行:

conda install ipykernel
python -m ipykernel install --name my(在文件夹里的名称) --display-name my(想在jupyter显示名称)

检验是否添加成功,可通过下面命令查看:

jupyter kernelspec list

 

<think>好的,用户遇到了Conda安装pyLDAvis的EnvironmentNotWritableError错误,需要解决方案,特别是涉及conda-forge和权限问题。首先,我要回忆一下这个错误的常见原因。通常,这个错误是因为当前用户没有对conda环境的写入权限。可能用户在使用conda install命令,目标环境的目录权限设置不正确,导致用户无法修改。 接下来,我需要考虑可能的解决方法。首先应该检查环境路径的权限。用户可能需要使用sudo命令来提升权限,但conda官方并不推荐这样做,因为可能会导致权限混乱。另一个方法是更改目录的所有权,比如使用chown命令将环境目录的所有权赋予当前用户。此外,用户也可以尝试在安装指定用户级别的安装,者使用conda的--user参数。 另外,用户可能安装了多个conda版本,conda的基础环境被错误地配置为系统级目录,导致普通用户无法写入。这候,重新配置conda的环境路径使用虚拟环境可能有效。还有一种情况是,用户可能在使用conda-forge频道没有正确配置,可能需要检查频道的优先级尝试不同的频道组合。 还需要考虑是否有其他进程锁定了conda的环境目录,比如后台运行的conda进程,这候需要确保所有conda进程都已关闭。此外,用户可能误操作修改了conda的配置文件,导致权限问题,可以检查~/.condarc文件是否有异常设置。 然后,根据引用中的信息,用户使用了conda-forge频道,可能需要确认安装命令是否正确。例如,引用[3]提到可以使用--channel指定频道,者直接尝试不指定频道安装,可能解决某些路径问题。此外,确保conda本身是最新版本也可能有帮助,因为旧版本可能存在已知的权限处理bug。 最后,总结可能的解决步骤:检查权限、修改目录所有权、使用sudo(谨慎)、创建新环境、使用虚拟环境、更新conda等。同,提醒用户避免使用root权限安装包,以免引发更多权限问题,并建议使用虚拟环境来隔离项目依赖,避免系统级环境的修改。</think>### Conda EnvironmentNotWritableError 解决方案(pyLDAvis + conda-forge) #### 1. 错误原因分析 出现`EnvironmentNotWritableError`的典型原因是**当前用户对目标环境conda基础目录缺少写入权限**,尤其是以下场景: - 使用系统级conda安装(如全局Anaconda),但未用管理员权限操作 - 环境目录(如`envs/``pkgs/`)被其他用户进程锁定 - conda-forge频道包需要特定依赖路径的写入权限[^1] #### 2. 具体解决步骤 **步骤1:检查权限问题** ```bash # 查看conda环境路径(例如base环境路径) conda info | grep "base environment" # 检查目标环境目录权限(例如/opt/anaconda3) ls -ld /opt/anaconda3 # 替换为你的conda安装路径 ``` 若输出显示目录属于root其他用户,需修改所有权: ```bash sudo chown -R $USER:$USER /opt/anaconda3 # 替换为实际路径 ``` **步骤2:尝试用户级安装(推荐)** ```bash conda install --user -c conda-forge pyLDAvis ``` `--user`参数会将包安装到用户目录(如`~/.local/lib/`),避免系统级权限冲突[^2]。 **步骤3:使用虚拟环境** ```bash # 创建新环境 conda create -n pyldavis_env python=3.9 conda activate pyldavis_env # 在虚拟环境中安装 conda install -c conda-forge pyLDAvis ``` 虚拟环境默认存储在当前用户目录下,可绕过权限问题[^3]。 **步骤4:修复conda包管理器** ```bash # 更新condaconda-build conda update -n base -c defaults conda conda update conda-build # 清理缓存 conda clean --all ``` #### 3. 附加说明 - 若必须使用系统级安装,可临尝试`sudo conda install`,但**长期不推荐**(可能破坏依赖树) - 检查`~/.condarc`配置文件,确保没有强制系统级路径的配置 - 确认磁盘空间充足(`df -h`),空间不足可能导致类似权限错误
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土Bo鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值