[已解决] Solving environment: failed with repodata from current_repodata.json (python其实已经被AutoDL装好了!)_collecting package metadata (repodata.json): done
背景
conda create -n sparseocc python=3.8 -y
后显示:
Collecting package metadata (current_repodata.json): doneSolving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
以下几个尝试都不太行:
(这个不行)conda clean -a 来清除缓存
(这个不行)将镜像源地址从 https 改为 http
(这个还没尝试,升级应该是最好的办法了)升级conda
升级conda 这个贴子里给出了几种可能得原因:
可能出错的原因
Anaconda中conda在安装某个包后出现\"Solving environment: \\一直转 卡住不动\"的问题可能由以下几个原因引起:
- 网络连接问题:Conda需要从互联网上下载包和环境配置,如果网络连接不稳定,可能会导致升级或解决环境时卡住
- Conda缓存问题:Conda使用缓存存储已下载的包和环境配置,缓存中的数据可能会导致升级或解决环境时出现问题
- Conda版本过旧:使用的Conda版本较旧可能会遇到一些问题,更新Conda到最新版本可能会解决这个问题
- 依赖关系问题:Conda在尝试解决依赖关系时出现了问题,导致无法正常进行更新
- 镜像源问题:使用不同的镜像源可能会加速Conda的升级或解决环境过程
- 性能问题:包管理器的性能问题也可能导致Conda在更新时卡住
(已经换过了)conda 换清华源
但是如图所示,AutoDL已经是清华源了
补充:conda 换清华源
把下面的代码一行一行复制到anaconda prompt里执行,就能完成换源!
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/conda config --set show_channel_urls yesconda clean -a -y # 为了确保配置生效,可以清理一下旧的缓存(可选,但推荐)
执行“conda info”命令可以查看现在的channels,觉得有问题,可以使用命令:
conda config --remove channels \"http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64\"
移出多余的,比如这里移出的是http开头的,这不够安全
补充:pip永久换清华源
# 清华源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple# 阿里云pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
尝试:重装conda
之前AutoDL给的的conda版本是4.14,于是选择重新装个镜像:
这不影响数据盘,然后重进终端,这次conda版本降低到了4.10.3
然后补充了一个AutoDL没有的清华源
(base) root@autodl-container-e70d438c6c-3e976378:~# pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simpleWriting to /root/.config/pip/pip.conf(base) root@autodl-container-e70d438c6c-3e976378:~# conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/(base) root@autodl-container-e70d438c6c-3e976378:~# conda config --set show_channel_urls yes(base) root@autodl-container-e70d438c6c-3e976378:~#
看看这次效果:
base) root@autodl-container-e70d438c6c-3e976378:~# conda create -n sparseocc python=3.8 -yCollecting package metadata (current_repodata.json): doneSolving environment: failed with repodata from current_repodata.json, will retry with next repodata source.Collecting package metadata (repodata.json): doneSolving environment: done==> WARNING: A newer version of conda exists. <== current version: 4.10.3 latest version: 25.5.1Please update conda by running $ conda update -n base -c defaults conda## Package Plan ## environment location: /root/miniconda3/envs/sparseocc added / updated specs: - python=3.8The following packages will be downloaded: package | build ---------------------------|----------------- _libgcc_mutex-0.1 | main 3 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main _openmp_mutex-5.1 | 1_gnu 21 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main...xorg-libxau-1.0.12 | 13 KB | ############################################################################################################## | 100% setuptools-75.1.0 | 1.7 MB | ############################################################################################################## | 100% Preparing transaction: doneVerifying transaction: doneExecuting transaction: done## To activate this environment, use## $ conda activate sparseocc## To deactivate an active environment, use## $ conda deactivate(base) root@autodl-container-e70d438c6c-3e976378:~#
成功装上了,即使还是出现了current_repodata.json搞不定(不稳定)的问题,但这次conda自己转到了repodata.json进行尝试,没有完全成功解决
在进一步装pytorch时遇到了问题:“Solving environment: failed with initial frozen solve. Retrying with flexible solve.”
解决方案:python其实已经装好了!conda新建环境,pip装依赖包即可
AutoDL在创建实例时,咱们选择的镜像已经把python装好了
pip无法直接安装Python本身,只能安装Python的包(如numpy、torch等)
conda用来管理Python版本,比如创建/切换不同的Python版本环境
- conda list 会显示当前环境中通过conda或pip安装的包
- 但Python本身是环境的基础,它不是以普通包的形式出现在列表里,而是作为环境的“核心”
如何确认当前Python版本
我们看看这条日志:
(sparseocc) root@autodl-container-5fe44bab80-dc2c6e88:~# conda create -n sparse-1 python=3.8Collecting package metadata (current_repodata.json): doneSolving environment: failed with repodata from current_repodata.json, will retry with next repodata source.Collecting package metadata (repodata.json): | # 这里其实失败了(sparseocc) root@autodl-container-5fe44bab80-dc2c6e88:~# python --versionPython 3.8.10(sparseocc) root@autodl-container-5fe44bab80-dc2c6e88:~#
当我们执行命令 “conda create -n sparse-1 python=3.8” 时,还是会有这个报错,但此时我们执行命令:
conda info
或者更直接的:
python --version
就能够看到当前python的版本,即使 conda create -n [想创建的环境名],conda activate [想创建的环境名] 之后,再执行刚才那两个命令,也会发现已经装好了py38
但这行命令
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
还是没法成功执行,只能是使用conda创建环境,pip来安装依赖包啦
神奇的特性
在经过执行“conda create -n sparseocc”,加载显卡后,python --version找不到python,删除sparseocc环境后,命令“conda create -n sparseocc python=3.8 -y”竟然成功执行了